ScrollTop适用于Chrome和Edge,但不适用于Firefox

ScrollTop works in Chrome and Edge but not Firefox

本文关键字:适用于 不适用 Firefox Edge Chrome ScrollTop      更新时间:2024-05-28

所以我有一个JavaScript函数,当点击导航栏的那一部分时,它会滚动到所需的元素。它在Chrome和Edge中运行良好,但在Firefox或IE中则不然。
功能:

$('html', 'body').animate({
  scrollTop:$('.'+nextView).offset().top}, 1500
);

nextView是来自另一个函数的变量,它确定导航的哪个部分被点击。基本上,它包含要滚动到视图中的div的名称。

有人知道为什么它不起作用吗?还是一种可行的自动滚动的替代方法?

尝试.position()而不是.offset(),看看这是否有效。可能需要一些更正。

编辑:这可能与你的选择器有关。使用html,正文为1字符串:

$('html, body').animate({
  scrollTop:$('.'+nextView).offset().top}, 1500
);

我对代码做了一点更改,现在它似乎可以工作了。在animate调用之前,我找到了要滚动到的元素的位置,然后将该变量放入scrollTop,它现在就可以工作了,甚至在IE中也是如此!

scrollPos = $('.'+nextView).offset().top;
$('html, body').animate({
  scrollTop: scrollPos
}, 1500);