【发布时间】:2020-01-19 21:08:32
【问题描述】:
编辑:我找到了一个 jQuery 解决方案! https://codepen.io/chriscoyier/pen/dpBMVP 这确实适用于iOS。我猜想 jQuery 桥接浏览器支持问题的日子还没有结束。
当然,经过几个小时的搜索,最后发布到 Stack Overflow,我在几分钟后找到了解决方案。我看到其他一些人在 cmets 中提出了一些建议——我也会检查一下。然而,上面 Codepen 中的这个 jQuery 解决方案可以解决问题,并允许轻松自定义滚动速度来启动!
----------------原始问题-----------------------
您可能已经注意到 iOS Safari 或 iOS Chrome 都不支持 CSS 属性 Scroll Behavior: Smooth。我的问题是:是否有另一种 javascript 方法可以将滚动动画到页面上不依赖此 CSS 属性的特定位置?也许滚动少量然后重复此行为直到击中所需目标的东西?我尝试了以下方法,但出现“超出最大调用大小错误”:
function scrollExperiment() {
const finalPosition = 500
let i = 0
if (i < finalPosition) {
window.scrollTo(0, 1);
i++
setTimeout(scrollExperiment(), 10)
}
} scrollExperiment()
有没有人成功构建过这样的解决方法?我觉得应该有一个不依赖属性 Scroll Behavior: Smooth 的 jQuery 解决方案,但我还没有找到。我尝试了以下方法,但在 iOS 上仍然无法流畅滚动:
$(window).scrollTop($("#anchor").offset().top);
【问题讨论】:
-
您在项目中使用 jQuery 吗?如果是这样,您可能只需要animate
scrollTop?
标签: css ios safari mobile-safari smooth-scrolling