我的回到顶部浮动按钮在IE和火狐下都能正常使用,但是在chrome下就不行,不显示请问怎么解决,我不会JS

2025-05-11 05:53:00
推荐回答(3个)
回答1:

这个是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);
}
};
})(); 上面的完整代码,我本地测试已通过。

回答2:

  您好!很高兴为您答疑!

  尝试将getScrollTop()和 setScrollTop()改为:

function getScrollTop(){
return document.documentElement.scrollTop+document.body.scrollTop;
}
function setScrollTop(value){
if (!document.documentElement.scrollTop){ ...
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

回答3:

你如果不会,我也懒得改你的程序,你直接百度下:jquery插件 回到顶部
别折腾了,不是很熟悉的话,折腾出来bug还多