所以我有一个JavaScript函数,当单击导航栏的那一部分时,它会滚动到所需的元素。它适用于Chrome和Edge,但不适用于Firefox或IE 功能:
$('html', 'body').animate({
scrollTop:$('.'+nextView).offset().top}, 1500
);
nextView
是来自另一个函数的变量,它确定单击导航的哪个部分。基本上,它包含要滚动到视图中的div的名称。
任何人都知道它为什么不起作用?或者另一种自动滚动的方法是什么?
答案 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);