
由于思路跟代码都很简单,所以就直接贴出实现细节了:
var BackTop = function (domE,distance) {if (!domE) return;var _onscroll = window.onscroll,_onclick = domE.onclick;window.onscroll = throttle(function(){typeof _onscroll === "function" && _onscroll.apply(this, arguments);toggleDomE();},100);domE.onclick = function(){typeof _onclick === "function" && _onclick.apply(this, arguments);document.documentElement.scrollTop = 0;document.body.scrollTop = 0;};function toggleDomE(){domE.style.display = (document.documentElement.scrollTop || document.body.scrollTop) > (distance || 500) ? "block" : "none";}function throttle(func, wait) {var timer = null;return function () {var self = this, args = arguments;if (timer) clearTimeout(timer);timer = setTimeout(function () {return typeof func === "function" && func.apply(self, args);}, wait);}}}; 调用方式:<script>new BackTop(document.getElementById("backTop"))</script>之所以写这篇博客,弄这么个简单的东西,有两个方面的原因:
functionpageScroll() {window.scrollBy(0,-10);scrolldelay=setTimeout("pageScroll()",100);}<ahref="pageScroll();">返回顶部</a>这样就会动态返回顶部,不过虽然返回到顶部但是代码仍在运行,还需要在pageScroll函数加一句给停止掉。if(document.documentElement.scrollTop==0)clearTimeout(scrolldelay);三、使用Onload加上scroll功能实现动态返回顶部
<divid="gotop">返回顶部</div>2、再调用以下JS脚本部分:
BackTop=function(btnId){varbtn=document.getElementById(btnId);vard=document.documentElement;window.onscroll=set;btn.onclick=function(){btn.style.display="none";window.onscroll=null;this.timer=setInterval(function(){d.scrollTop-=Math.ceil(d.scrollTop*0.1);if(d.scrollTop==0)clearInterval(btn.timer,window.onscroll=set);},10);};functionset(){btn.style.display=d.scrollTop?"block":"none"}};BackTop("gotop");这些可以放到网页中中,也可以独立存成一个js文件,比如gotop.js,再通过以下形式:<scriptsrc="/js/gotop.js"type=text/javascript></script>来调用,当然了位置最好放在“返回顶部”标签的下面,该调用方法已假设文件路径为JS,放在其它位置请根据实际修改。