jQuery ScrollTop到Element ID无法在Safari上运行

问题描述 投票:2回答:1

我需要一个跨浏览器的解决方案来滚动到页面上的元素。此代码适用于Chrome,但不适用于Safari,也不适用于移动版Safari。它滚动到页面顶部,而不是div id:

$(".link").click(function() {
    $("html,body").animate({ scrollTop: $("#div_id").offset().top - 260 }, 1000);
});
jquery jquery-animate offset scrolltop
1个回答
0
投票

根据在github(现已关闭)上记录的this issue,如果你的css中有以下代码:

body{
overflow-x:hidden;
}

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

如果你有隐藏的溢出css,你可以删除它,或建议的解决方法(也在帖子中)是使用:

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

希望这可以帮助

© www.soinside.com 2019 - 2024. All rights reserved.