jQuery中的滚动到元素ID功能在Safari浏览器上无法正常工作

3

我需要一个适用于各种浏览器的滚动到页面上的元素的解决方案。这段代码在Chrome上运行得非常完美,但是在Safari和移动端的Safari上却无法正常工作。它只会将页面滚动到顶部,而不是指定的div ID所在位置:

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

1
根据在 Github 上记录的此问题(已关闭),如果您的 CSS 中包含以下代码:
body{
overflow-x:hidden;
}

如果您隐藏了溢出的CSS,可以将其删除,否则Safari将无法准确计算scrollTop(但这仅影响Safari)。

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

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

希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接