重新加载页面时,它会跳到顶部,使用涡轮链接和隐藏在HTML和body上的溢出



我在 Rails 5.1.4上有一个项目。正如这个问题的标题中所说的那样,重新加载页面使其跳到了它的顶部。但是我希望该页面保持与重新加载之前相同的位置。在我的css中,我有这些样式:

html {
  overflow: hidden;
}
body {
  overflow-x: hidden;
}

如果我对它们发表评论,则turbolinks的行为是确切的。是否有任何方法可以将这些样式留在页面重新加载后迫使turbolinks保持相同的位置?谢谢。

正如我在评论中所说的那样,涡轮链接的工作方式会影响浏览器加载.js文件的方式。

这是因为所有JS/CSS/HTML文件均已为新页面加载,但是由于Turbolinks cached cached cached cached cached cached cached cached cached cached cached cache cache cachss cachss cachss cachss cachss cachs cachss cachs cache cachs cachs cachs cache cachs cachs cache cachs cache cachss的重新加载重新加载重新加载时不会再次处理。因此,您可能会有一个.js文件(也许是插件),该文件会影响页面中的.css。

解决此问题的一种方法是在加载页面时始终呈现.js的元素。您可以通过JavaScript做到这一点。

i不是Turbolinks的问题,而是默认情况浏览器的行为。浏览器将文档的滚动位置存储在导航之前,以便在重新加载或返回时可以恢复它。(Turbolinks重复此行为。)

通过将overflow: hidden;应用于html元素,无法滚动文档元素,因此滚动位置将始终为0。使用CSS,实际上是body元素实际上是在滚动而不是文档。

为了证明这一点,这是一个非turbolinks页面,上面有CSS:http://output.jsbin.com/mikopor注意,如果您向下滚动并刷新刷新,则该页面将返回顶部。

如果可能的话,我建议删除html { overflow: hidden; }

希望有帮助

最新更新