我需要跨浏览器解决方案才能滚动到页面上的元素。这段代码可完美地在Chrome上正常运行,但不适用于Safari或移动版Safari。它滚动到页面顶部,而不是div
id:
$(".link").click(function() {
$("html,body").animate({ scrollTop: $("#div_id").offset().top - 260 }, 1000);
});
答案 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)
希望这会有所帮助