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

时间:2016-04-12 18:05:51

标签: javascript jquery google-chrome firefox

所以我有一个JavaScript函数,当单击导航栏的那一部分时,它会滚动到所需的元素。它适用于Chrome和Edge,但不适用于Firefox或IE 功能:

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

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

任何人都知道它为什么不起作用?或者另一种自动滚动的方法是什么?

2 个答案:

答案 0 :(得分:1)

尝试使用.position()而不是.offset()来查看是否有效。可能需要一些修正。

编辑:它可能与您的选择器有关。使用html,body作为1个字符串:

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

答案 1 :(得分:0)

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

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