我正在使用turbolinks作为轨道;每当我点击链接时,页面都会向下滚动到上一页的滚动位置。我想要加载所有页面,使其不向下滚动(停留在页面顶部)。我不需要turbolinks来记住我之前的滚动位置。那么如何强制页面加载顶部的滚动位置(0,0)?
我试过
$ ->
window.scrollTo 0,0
但我可能没有约束这个权利。
答案 0 :(得分:1)
您可能正在使用旧版本的turbolinks。这个问题是fixed。
尝试更新您的Gemfile以使用更新的版本。我使用'1.1.1'时遇到了同样的问题,但在切换到'2.2.3'之后就解决了。
答案 1 :(得分:0)
原因是Turbolink取代了DOM元素而没有刷新页面,所以你的滚动停留在同一个位置。
要进行更改,您需要观察Turbolinks发出的事件,表明页面加载已完成,然后开始滚动操作。
试试这个:
$ ->
$(document).on 'page:load', ->
window.scrollTo 0, 0
答案 2 :(得分:0)
我在 Rails 6 中遇到了同样的问题,并通过添加解决了
document.addEventListener("turbolinks:load", function() {
window.scrollTo(0,0)
});
在 application.html.erb 的 <script>
标签下。
这基本上是将EventListener添加到DOM,每当turbolinks加载时,它会自动滚动到页面顶部。