You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7集成Turbo后浏览器返回滚动异常,如何禁用该行为?

Turbo 返回滚动行为问题解答

问题结论

这个带有滚动过程的位置恢复确实是Turbo的默认特性——Turbo在处理浏览器历史导航(返回/前进)时,会自动恢复页面之前的滚动位置,并且默认带有平滑滚动的过渡效果。

禁用方法

1. 全局禁用

在你的Rails应用的JavaScript入口文件(通常是app/javascript/application.js)中,添加Turbo配置关闭滚动恢复:

Turbo.configure({
  scrollRestoration: false
})

配置完成后,所有Turbo处理的导航返回操作都不会再触发平滑滚动,直接回到原位置。

2. 局部禁用(针对特定链接/表单)

如果只需要在特定导航场景下禁用该行为,可以给目标链接或表单添加data-turbo-scroll-restoration="false"属性:

  • 链接示例:
<%= link_to "注册", signup_path, data: { turbo_scroll_restoration: "false" } %>
  • 表单示例:
<%= form_with model: @user, data: { turbo_scroll_restoration: "false" } do |f| %>
  <!-- 表单内容 -->
<% end %>

设置后,通过该链接/表单跳转后再返回,不会出现滚动过渡过程,直接回到之前的位置。

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:42:34