加载文档后,某些东西正在滚动回 0,0
Something is scrolling back to 0,0 after document loaded
我有这个 JS 可以滚动到页面加载时的特定位置(对于 Rails 使用 Turbolinks,是在 Turbolinks 加载):
document.addEventListener("turbolinks:load", function() {
window.scrollTo(240,1);
});
但是当我加载一个页面时,它会在 240,1
加载一瞬间,然后突然回到 0,0
。
有谁知道是什么导致延迟滚动到 0,0
?
我也试过用"page:load"
和"ready"
替换"turbolinks:load"
,它们也不行。
可能相关的事情:
- Chrome桌面
- Ruby 在 Rails 5.2.3
- Turbolinks 5
- 没有其他自定义 JS
尝试history.scrollRestoration = 'manual';
。它应该可以防止页面滚动回之前的位置。
将此脚本添加到开发工具控制台
window.onscroll = function (e) {
console.log("Window scrolled");
}
现在添加断点并检查调用堆栈,如下图所示。
这将向您展示正在改变 window 滚动条的所有函数。
注意,如果你自己滚动页面,这个函数也会被执行。
希望对你有帮助!!
我有这个 JS 可以滚动到页面加载时的特定位置(对于 Rails 使用 Turbolinks,是在 Turbolinks 加载):
document.addEventListener("turbolinks:load", function() {
window.scrollTo(240,1);
});
但是当我加载一个页面时,它会在 240,1
加载一瞬间,然后突然回到 0,0
。
有谁知道是什么导致延迟滚动到 0,0
?
我也试过用"page:load"
和"ready"
替换"turbolinks:load"
,它们也不行。
可能相关的事情:
- Chrome桌面
- Ruby 在 Rails 5.2.3
- Turbolinks 5
- 没有其他自定义 JS
尝试history.scrollRestoration = 'manual';
。它应该可以防止页面滚动回之前的位置。
将此脚本添加到开发工具控制台
window.onscroll = function (e) {
console.log("Window scrolled");
}
现在添加断点并检查调用堆栈,如下图所示。
这将向您展示正在改变 window 滚动条的所有函数。
注意,如果你自己滚动页面,这个函数也会被执行。
希望对你有帮助!!