ScrollTop 适用于 Chrome 和 Edge,但不适用于 Firefox
Posted
技术标签:
【中文标题】ScrollTop 适用于 Chrome 和 Edge,但不适用于 Firefox【英文标题】:ScrollTop works in Chrome and Edge but not Firefox 【发布时间】:2016-08-03 12:22:32 【问题描述】:所以我有一个 javascript 函数,当单击导航栏的那部分时,它会滚动到所需的元素。它在 Chrome 和 Edge 中运行良好,但在 Firefox 或 IE 中运行良好。 功能:
$('html', 'body').animate(
scrollTop:$('.'+nextView).offset().top, 1500
);
nextView
是来自另一个函数的变量,它确定导航的哪个部分被单击。基本上,它包含要滚动到视图中的 div 的名称。
有人知道为什么它不起作用吗?还是另一种可行的自动滚动方法?
【问题讨论】:
看看这里:***.com/questions/16475198/jquery-scrolltop-animation 【参考方案1】:尝试 .position() 而不是 .offset() 看看是否有效。可能需要一些修正。
编辑:它可能与您的选择器有关。使用 html, body 作为 1 个字符串:
$('html, body').animate(
scrollTop:$('.'+nextView).offset().top, 1500
);
【讨论】:
感谢您的建议,但仍然无法正常工作。同样,它在 chrome 和 Edge 中很好,但在 Firefox 中仍然没有。它甚至没有抛出任何错误,什么也没有。 我正在使用 FF 进行测试,它工作正常。你能发布一个示例页面吗?【参考方案2】:我对代码做了一点改动,现在它似乎可以工作了。我在 animate 调用之前找到要滚动到的元素的位置,然后将该变量放入 scrollTop 并且它现在可以工作,即使在 IE 中也是如此!
scrollPos = $('.'+nextView).offset().top;
$('html, body').animate(
scrollTop: scrollPos
, 1500);
【讨论】:
以上是关于ScrollTop 适用于 Chrome 和 Edge,但不适用于 Firefox的主要内容,如果未能解决你的问题,请参考以下文章
jQuery offset()函数 和 scrollTop()函数
WebRTC connectionState 停留在“new” - 仅适用于 Safari,适用于 Chrome 和 FF
css 媒体查询2,适用于Black Goose Bakery网站,LWD5ed
scrollTo() 和 jquery scrollTop() 在 Chrome 中不起作用