php - 用户自定义样式是否可以与 document.ready + localStorage 一起使用?

标签 php javascript jquery css html

我运行并积极开发一个论坛(它本身运行在经过大量修改的 SMF 1.1.16 上)- 我想添加的一个功能是用户能够从小部件中选择自定义颜色(比如 2-4)在页面的一 Angular 自定义论坛的颜色。

论坛的 HTML 输出的结构使得可以使用纯 CSS 来修改颜色,我想知道插入此 CSS 的正确方法是什么。

我的想法是,一旦用户保存了他们的颜色信息,一段 javascript 就会生成必要的 CSS 并使用 HTML5 localStorage(可能使用 polyfill 库)保存它。然后,在 $(document).ready() 上,我们检查此 CSS 是否存在,如果存在,我们将其注入(inject)页面头部。

这种方法是否明智?它易于开发,但在应用自定义样式之前是否会导致通常样式的闪烁(假定页面相当重量级)?

如果是这样,是否有更好的方法来完全在客户端执行此操作?如果可能的话,我宁愿不涉及服务器,但如果必须的话,我可以让服务器为每个保存自定义样式的用户生成 CSS 文件。

什么是最好的方法?

最佳答案

我建议你先有一个页面的基本样式,这样就不会出现FOUC。然后,让您的 JS 加载自定义样式,解析它,然后将其应用于页面。你可以做一个“淡入变化”(比如背景淡入淡出等)这样样式就不会像快照一样加载。

您也可以先将页面空白,例如将正文设置为display:none,然后再加载样式,然后在应用样式后,删除display:none

您还必须注意本地存储有大小限制。不要加载太多。考虑寻找 LZW compression in JS .这可能会有所帮助。

关于php - 用户自定义样式是否可以与 document.ready + localStorage 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10496765/

相关文章:

php - 从下拉列表中选择名称后获取所有 mysql 行数据

javascript - 将参数和默认值动态绑定(bind)到 Javascript 中的现有函数

php - 使用正则表达式匹配作为数组指针

javascript - php 中未读取 Span 变量

php - Post 方法在 Laravel 中不起作用

javascript - 我可以判断我的 Chrome 扩展程序是否在 Windows 上运行吗?

javascript - 使用 jQuery 突出显示单词的父级?

jquery - 使用 jQuery 预加载图像

jQuery ui 选项卡 heightStyle : auto not working - getting height from wrong tab

javascript - 如何在 CSS 中集中倒数计时器