Rails 请教下大家,我希望在 Rails 应用中做一个可以切换主题色、字体大小的菜单,如何让菜单即时生效而不用手动点保存呢

Zizhen · 2022年06月19日 · 最后由 xianyuit 回复于 2022年06月19日 · 350 次阅读

大概就是类似 Notion 右上角点菜单,可以切换字体、主题等等选项,但是都是点的时候或切换的时候即时生效的,希望大家能帮助点拨下思路

数据保存到 session 然后用一个 controller before action 过滤一下

做过类似的功能,演示效果看 https://asciibook.org/docs/ 右上角 tT 按钮菜单。

纯前端实现,代码在 https://github.com/asciibook/asciibook/blob/master/theme/html/html.js#L78-L153

思路:

  • 做一个切换样式的表单
  • 绑定事件,表单内容变化时,修改 body 的 style。
  • 将每个选项的值储存在 localstorage。
  • 加载页面时,读取 localstorage,同步页面样式和表单的值。
xianyuit 回复

感谢!我可能还需要研究一下,还想问一下这样的方式更改也能做到存到数据库里吗,因为有一些是需要持久的用户数据

Zizhen 回复

可以存,还可以针对每个用户来存这个设置,你在用户表存起来就行

需要 登录 后方可回复, 如果你还没有账号请 注册新账号