在性能方面考虑了由于连续触发onscroll事件,频繁调用回调函数而产生的性能问题。可以将回调函数缓存一段时候后执行,即当这段时间内多次触发了onscroll事件,但回调函数只会执行一次。
复制代码 代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>结合淡入/淡出/减速运动效果实现的返回顶部功能</title>
<style>
.fixed{
position:fixed; bottom:100px; width:20px; right:100px; height:80px; font-size:12px;
cursor:pointer; background-color:#ccc; opacity:0; filter: alpha(opacity=0);
}
.placeholder{ height:2000px;}
</style>
</head>
<body>
<div id="gotop" class="fixed">
返回顶部
</div>
<script>
var tool = {
//此方法为了避免在 ms 段时间内,多次执行func。常用 resize、scoll、mousemove等连续*件中
buffer: function(func, ms, context){
var buffer;
return function(){
if(buffer) return;
buffer = setTimeout(function(){
func.call(this)
buffer = undefined;
},ms);
};
},
/*读取或设置元素的透明度*/
opacity: function(elem, val){
var setting = arguments.length > 1;
if("opacity" in elem.style){//elem.style["opacity"] 读取不到CSS class中的值
return setting ? elem.style["opacity"] = val : elem.style["opacity"];
}else{
if(elem.filters && elem.filters.alpha) {
return setting ? elem.filters.alpha["opacity"] = val*100 : elem.filters.alpha["opacity"]/100;
}
}
},
//获取或设置文档对象的scrollTop
//function([val])
documentScrollTop: function(val){
var elem = document;
return (val!== undefined) ?
elem.documentElement.scrollTop = elem.body.scrollTop = val :
Math.max(elem.documentElement.scrollTop, elem.body.scrollTop);
}
};
//动画效果
var effect = {
//淡入
fadein: function (elem){
var val = 0;
var interval = 25;
setTimeout(function(){
val += 0.1;
if(val>1){
tool.opacity(elem, 1)
return;
}else {
tool.opacity(elem, val)
setTimeout(arguments.callee, interval);
}
},interval);
},
//淡出
fadeout: function (elem){
var val = 1;
var interval = 25;
setTimeout(function(){
val -= 0.1;
if(val < 0){
tool.opacity(elem, 0)
return;
}else {
tool.opacity(elem,val) ;
setTimeout(arguments.callee, interval);
}
},interval);
},
//减速移动滚动条
move: function(scrollTop){
setTimeout(function(){
scrollTop = Math.floor((scrollTop * 0.65));
tool.documentScrollTop(scrollTop);
if(scrollTop !=0 ){
setTimeout(arguments.callee, 25);
}
},25);
}
};
//主程序
(function(){//gotop
var visible = false;
var elem = document.getElementById("gotop");
function onscroll(){
var scrollTop = tool.documentScrollTop();
if(scrollTop > 0){
if(!visible){
effect.fadein(elem)
visible = true;
}
}else{
if(visible){
effect.fadeout(elem);
visible = false;
}
}
}
function onclick(){
var scrollTop = tool.documentScrollTop();
effect.move(scrollTop);
}
elem.onclick = onclick;
window.onscroll = tool.buffer(onscroll, 200, this);
})();
</script>
<div class="placeholder">placeholder</div>
</body>
</html>
兼容性和bugs相关问题:
1 opacity: function(elem, val){
if(val){//使用这种判断方式当传0,空字符串时会产生BUG 。
2:document.documentElement.scrollTop chrome取不到值 。
3: elem.style.opacity 读取不到在CSS Class中定义的值。
4:IE6不支持fixed定位,虽然可以使用absolute模拟。不过很有很多网站都它进行了降级处理。
相关推荐:
ChatGPT+维护页面:您的智能助手之旅,安全、高效、无忧,奥特曼画图ai
SEO优化工具优势:提升网站排名,带来流量和转化的秘密武器,ai圆形造字
ChatGPT破解版电脑:如何获得更强大的AI助手,提升工作与学习效率,ai预设动画
ChatGPT3.5需要登录使用吗?AI使用的真相!,电脑版写作ai推荐怎么关闭
OpenAIGPTChatSoraOpenAIChatGPT服务在中断数小时后已恢复,ai视图线稿
SEO目标:让您的网站轻松登顶搜索引擎,优化购物网站的搜索
seo点击工具,seo排名点击软件推荐 ,ai狂躁
自动生成文章的AI软件,助力内容创作的未来
ChatGPTCanvex打不开?详细分析及解决方法助你顺利使用,ai2.5d网格线去除
文章创作AI:引领智能写作的新时代
企业如何借助SEO咨询实现精准流量引爆,助力业绩提升,立刻推广的旅游线下营销
优化高效率:提升个人与企业竞争力的关键,安康网站推广咨询
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
SEO首选:如何通过优化网站提升排名和流量,简单的网站优化软件
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
wordpress seo是什么,wordpress建站seo好做吗 ,学习图文ai
GPT-3.5免费吗?揭秘AI智能助手的未来与收费模式,ai 美美
ChatGPT不能用?揭秘你可能忽视的真相和解决方法,强国ai2022
SEO门户:打造高效网站流量的关键利器,创意网站建设要求
智能AI写作生成:如何借助人工智能提升创作效率与质量
为什么seo推广那么多,seo推广难吗 ,东莞ai听译平台
SEO模板:提升网站排名,助你快速抢占搜索引擎流量高地,选择seo职业缺点
SEO售产-数字营销新战场,助力企业实现盈利增长,去哪找自贡网站建设
OpenAI网站崩溃原因:背后的技术与挑战,千牛Ai智投在哪里找
AI+写文章:开启智能创作新时代
怎样用AI写文章?快速高效创作新技能!
用AI写文章:效率与创意的完美结合
“更加通顺”-让生活与工作无缝衔接的语言魅力,SEO书架书桌收纳
SEO有话:如何用精准优化助力企业在线增长,食品微信营销推广
360优化关键词-提升网站流量与排名的秘密武器,美拍ai
seo监控什么意思,seo数据监控 ,ai panda眼镜架
Chatttst:开启智能沟通新时代的无限可能,上海联通ai
在线AI写文:开启高效创作新时代
ChatGPT异常了:人工智能的极限与突破,ai and ethics
seo独立站是什么,独立站推广是什么 ,ai曲线笔刷扩展
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
OpenAI无法验证支付方式?解决方案与常见问题解析,你好月光ai
文章AI生成软件高效创作新纪元
SEO实现:如何通过SEO优化提升网站流量与排名,南京市公司网站推广
SEO能够助力网站流量增长,提升品牌竞争力,Seo网站排名原理
ChatGPT崩溃!用户反馈网页端无法访问,修复急需,ai院子
为什么选择SEO会员服务,让您的网站流量飞速增长,靖边专业网站建设公司
SEO监控:精准把握网站排名与优化成效的利器,湖南seo排名商家名单
SEO优化10种策略:提升网站排名的有效方法,帅气ai男头白底
文章自动生成AI:助力写作新时代,让创作更高效
《*采集站:带你领略全球最全*资源的宝藏平台》,seo优化易下拉瞧瞧
ChatGPT恢复正常使用时间,提升你的工作与生活效率,联想电脑AI0510
怎么用AI缩写文章,轻松提高效率的全新方法
自动写文章的AI,提升效率的创作利器