这个是chrome对document.documentElement.scrollTop的支持有点怪异导致的。
你可以把你的getScrollTop()和 setScrollTop()函数改为下面的:
function getScrollTop(){
return document.documentElement.scrollTop+document.body.scrollTop;
}
function setScrollTop(value){
if (!document.documentElement.scrollTop){
document.body.scrollTop = value;
}
else {
document.documentElement.scrollTop=value;
}
}
同时,你的外层的goTopEx函数的写法和调用办法不够好,我为了做测试,在外边加了闭包。
你看一下下面的完整代码:
(function goTopEx(){
var obj=document.getElementById("goTopBtn");
function getScrollTop(){
return document.documentElement.scrollTop+document.body.scrollTop;
}
function setScrollTop(value){
if (!document.documentElement.scrollTop){
document.body.scrollTop = value;
}
else {
document.documentElement.scrollTop=value;
}
}
window.onscroll=function(){
getScrollTop()>0?obj.style.display="":obj.style.display="none";
};
obj.onclick=function(){
var goTop=setInterval(scrollMove,10);
function scrollMove(){
setScrollTop(getScrollTop()/1.1);
if(getScrollTop()<1)clearInterval(goTop);
}
};
})(); 上面的完整代码,我本地测试已通过。
您好!很高兴为您答疑!
尝试将getScrollTop()和 setScrollTop()改为:
function getScrollTop(){
return document.documentElement.scrollTop+document.body.scrollTop;
}
function setScrollTop(value){
if (!document.documentElement.scrollTop){ ...
您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
你如果不会,我也懒得改你的程序,你直接百度下:jquery插件 回到顶部
别折腾了,不是很熟悉的话,折腾出来bug还多