移动 Safari:刷新时跳转到最后滚动位置的 JS 事件

Posted

技术标签:

【中文标题】移动 Safari:刷新时跳转到最后滚动位置的 JS 事件【英文标题】:Mobile Safari: JS event for jump to last scroll position on refresh 【发布时间】:2014-09-10 22:05:53 【问题描述】:

当页面刷新并且 Safari '跳转'回到你所在的滚动位置时,是否有一个我可以挂钩的 javascript 事件?

这非常令人沮丧,因为scroll 事件仅在用户/触摸引起的滚动时触发,因此在这种情况下不会触发。我需要专门找到一种绑定到该事件的方法,例如,DOMContentLoaded 甚至在此之前触发,并且窗口的load 事件触发得太晚,因为这将等待所有内容加载。

原因是我正在检查一个元素是否在视图中(使用getBoundingClientRect)。

我在这里遗漏了什么吗?由于我没有使用 jQuery,而是使用 vanilla JS,所以我没有 document.ready() 可以尝试(尽管从 source code of it 来看,我怀疑它会起作用)。

【问题讨论】:

【参考方案1】:

经过一些实验,事实证明window 上的load /onload 事件会触发 Safari Mobile(可能还有其他浏览器)中的这种跳转,因此绑定到该事件就足够了。

我希望这对某人有帮助!

【讨论】:

好像不太对,至少我看到的不是这个。它看起来设置初始滚动位置与加载事件无关,并且可能在它之后发生。

以上是关于移动 Safari:刷新时跳转到最后滚动位置的 JS 事件的主要内容,如果未能解决你的问题,请参考以下文章

RecycleView 实现携程酒店图片滑动到最后一张时跳转到相册

RecycleView 实现携程酒店图片滑动到最后一张时跳转到相册

自动检测,pc端与移动端打开网页时跳转到对应的地址

小程序页面返回时跳转问题

JQuery UI .Sortable在溢出底部移动li时跳转

动画视图跳转到最终位置而不是缓慢移动