我需要一个跨浏览器的解决方案来滚动到页面上的元素。此代码适用于Chrome,但不适用于Safari,也不适用于移动版Safari。它滚动到页面顶部,而不是div
id:
$(".link").click(function() {
$("html,body").animate({ scrollTop: $("#div_id").offset().top - 260 }, 1000);
});
根据在github(现已关闭)上记录的this issue,如果你的css中有以下代码:
body{
overflow-x:hidden;
}
,那么它将阻止Safari准确计算scrollTop
(但它只影响Safari)。
如果你有隐藏的溢出css,你可以删除它,或建议的解决方法(也在帖子中)是使用:
const scrollTop = Math.max(window.pageYOffset, document.documentElement.scrollTop, document.body.scrollTop)
希望这可以帮助