。使用javascript的滚动动画不起作用

。使用javascript的滚动动画不起作用,javascript,Javascript,每当用户单击相应的菜单链接时,我尝试将页面滚动到页面的特定部分。对于我来说,document.getElementById(“容器”)。scrollTop不工作,因此我使用document.body.scrollTop。它总是显示为零作为值。但它不工作。有人能帮我吗?这是我的代码 window.addEventListener(“load”,init,true); 函数init() { var节点=document.querySelectorAll(“li”); 对于(var i=0;i

每当用户单击相应的菜单链接时,我尝试将页面滚动到页面的特定部分。对于我来说,document.getElementById(“容器”)。scrollTop不工作,因此我使用document.body.scrollTop。它总是显示为零作为值。但它不工作。有人能帮我吗?这是我的代码

window.addEventListener(“load”,init,true);
函数init()
{
var节点=document.querySelectorAll(“li”);
对于(var i=0;i

    主页 关于我们 职业
  • 我们的团队
  • 联系我们
这是主页 内容 这是关于我们的网页 内容 这是职业页面 内容 这是我们的团队页面 内容 这是联系我们页面 内容
在chrome上,
document.body.scrollTop
实际上没有调整,您需要
document.documentElement.scrollTop
。我添加了
getScrollTop
setScrollTop
函数,用于每次正确设置它们:

函数设置crolltop(值){
//检查是否有documentElement,否则应用于文档bodu
//应用于文档正文,以确保所有可能带有scrollTop的位置都已更新。
(document.documentElement?document.documentElement:document.body)。scrollTop=值;
document.body.scrollTop=值;
}
函数getScrollTop(值){
//首先,查看是否存在scrollTop值大于0的documentElement
//然后,查看是否存在scrollTop值大于0的主体
//如果两者都不大于0,请返回0以确保安全。
return(document.documentElement?document.documentElement.scrollTop:document.body.scrollTop)| document.body.scrollTop | 0;
}
函数滚动动画(id){
var top=document.getElementById(id+“_scroll”).offsetTop;
滚动动画(顶部);
}
函数scrollAnimate(targetTop){
var top=getScrollTop();
如果(顶部<目标顶部){
setScrollTop(顶部+5);
setTimeout(函数(){scrollAnimate(targetTop)},4);
}
}
var节点=document.querySelectorAll(“li”);
for(设i=0;i
div[id]{
高度:100vh;
}

    主页 关于我们 职业
  • 我们的团队
  • 联系我们
这是主页 内容 这是关于我们的网页 内容 这是职业页面 内容 这是我们的团队页面 内容 这是联系我们页面 内容
尝试
window.scrollBy(0,5)
而不是
document.body.scrollTop+=5您正在哪个浏览器上测试此功能?有些要求您使用
document.documentElement
来读取和调整整个文档的
scrollTop
值,这样您就可以得到正确的值:
(document.documentElement?document.documentElement.scrollTop:document.body.scrollTop)| | document.body.scrollTop | | | | | | | | | | 0
我正在使用chrome@something,我只想在(bodyScrollTop