jQuery ScrollTop到Element ID在Safari上不起作用

时间:2018-09-04 22:48:58

标签: jquery jquery-animate offset scrolltop

我需要跨浏览器解决方案才能滚动到页面上的元素。这段代码可完美地在Chrome上正常运行,但不适用于Safari或移动版Safari。它滚动到页面顶部,而不是div id:

$(".link").click(function() {
    $("html,body").animate({ scrollTop: $("#div_id").offset().top - 260 }, 1000);
});

1 个答案:

答案 0 :(得分:0)

根据记录在github上的http://cato3000.com/carousel-foreground-example/(现已关闭),如果您的CSS中包含以下代码:

body{
overflow-x:hidden;
}

,那么它将阻止Safari准确计算scrollTop(但仅会影响Safari)。

如果您隐藏了溢出的CSS,则可以将其删除,或者使用建议的解决方法(也在文章中):

const scrollTop = Math.max(window.pageYOffset, document.documentElement.scrollTop, document.body.scrollTop)

希望这会有所帮助