消除无样式内容的闪烁

2023-11-26

如何停止网页上出现无样式内容 (FOUC)?


使用 css 样式最初隐藏某些页面元素,然后使用 javascript 在页面加载后将样式更改回可见的问题是,未启用 javascript 的人将永远无法看到这些元素。所以这是一个不会正常降级的解决方案。

因此,更好的方法是使用 JavaScript 来最初隐藏这些元素以及在页面加载后重新显示这些元素。使用 jQuery,我们可能会想做这样的事情:

$(document).ready(function() {
    $('body').hide();
    $(window).on('load', function() {
        $('body').show();
    });
});

但是,如果您的页面非常大,包含很多元素,那么此代码将不会很快应用(文档正文不会很快准备好),您可能仍然会看到 FOUC。然而,一旦在头部遇到脚本,甚至在文档准备好之前,我们就可以隐藏一个元素:HTML 标签。所以我们可以这样做:

<html>
  <head>
  <!-- Other stuff like title and meta tags go here -->
  <style type="text/css">
    .hidden {display:none;}
  </style>
  <script type="text/javascript" src="/scripts/jquery.js"></script>
  <script type="text/javascript">
    $('html').addClass('hidden');
    $(document).ready(function() {    // EDIT: From Adam Zerner's comment below: Rather use load: $(window).on('load', function () {...});
      $('html').show();  // EDIT: Can also use $('html').removeClass('hidden'); 
     });  
   </script>
   </head>
   <body>
   <!-- Body Content -->
   </body>
</html>

请注意,jQuery addClass() 方法在 .ready() (或更好,.on('load'))方法的*外部*调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

消除无样式内容的闪烁 的相关文章

随机推荐

  • 如何在 jsoup 中获取元素的第一级子元素

    在jsoup中Element children 返回 Element 的所有子元素 后代 但是 我想要元素的第一级子级 直接子级 我可以使用哪种方法 Element children 仅返回直接子元素 既然你把他们绑在树上 他们也会有孩子
  • 如何创建接受不超过 10 位数字的正则表达式?

    如何创建接受不超过 10 位数字的正则表达式 thanks 既然你问了 如何 我将尝试逐步解释 因为您没有指定您正在使用哪种正则表达式风格 所以我将在PCRE and 两个 POSIX 正则表达式变体 For simple在这种情况下 您应
  • 使用 iPhone 音频适配器传输数据

    我刚刚开始在一家生物医学公司工作 我们需要将我们正在制造的设备中的数据传输到 iPhone 显然 使用 iPhone 程序就足够了 但对于原型设计和更简单的解决方案 我想知道我们是否可以使用现有的蓝牙音频发射器 例如 http www bu
  • python高效子字符串搜索[重复]

    这个问题在这里已经有答案了 可能的重复 string find 在 CPython 中是如何实现的 我在堆栈溢出中阅读了许多文章 比较了子字符串搜索的性能 例如Python字符串搜索效率 这是搜索子字符串最有效的方法吗 python 中的子
  • RecyclerView:如何创建插入动画效果?

    我有一个ReyclerView与一个LinearLayoutManager and an Adapter
  • 如何将MySQLi结果集加载到二维数组中?

    我的 mysqli 结果集有问题 我有一个包含一堆消息的表 表中的每一行代表一条消息 我有一些列 例如 ID 标题 正文和 公共 公共列包含布尔值 指定消息是向所有人显示还是仅向发布者显示 我有一个页面 我想在其中显示所有公共消息 如果您单
  • 无法将下载的文件存储在相关文件夹中

    我用 python 结合 selenium 编写了一个脚本 用于从网页下载一些文档文件 以 doc 结尾 我不想使用的原因requests or urllib下载文件的模块是因为我当前正在玩的网站没有任何真实的网址连接到每个文件 它们是 J
  • 大图像的语义分割

    我正在处理数量有限的大尺寸图像 每个图像都可以有3072 3072像素 为了使用 FCN 或 U net 训练语义分割模型 我构建了一个大样本的训练集 每个训练图像是128 128 在预测阶段 我所做的是将大图像切成小块 与训练集相同128
  • Spring:如何使用@Value注释注入内联字符串列表[重复]

    这个问题在这里已经有答案了 如何使用注入字符串值列表 Value注解 我正在使用 Spring 4 1 2 我试过了 Value value top person organizationalPerson user private List
  • 从另一个 Activity 导航回来时,Android Activity onCreate 被调用两次

    我有一个应用程序 可以在用户在 webview 活动上使用 OAuth 进行身份验证后生成音乐 看起来像这样 主要播放器活动 OAuth 活动 返回主要播放器活动 但是 当从 OAuth 活动中调用 onCreate 方法时 会调用两次 导
  • 如何通过Delphi 7上传文件到dropbox?

    我尝试将文件上传到保管箱 我使用 dropbox apihttps www dropbox com developers reference api files POST procedure TDropbox Upload2 const U
  • 读/写 QObject

    I think我可以写一个QObject像这样利用Q PROPERTYs QDataStream operator lt lt QDataStream ds const Object obj for int i 0 i
  • ASP.NET 应用程序保持运行时浏览器超时

    我遇到了一种情况 ASP NET 需要很长时间才能生成网页回复 超过 2 小时 这是由于代码隐藏运行了一段时间 非常长 缓慢的循环 浏览器 IE 和 Firefox 停止等待回复 大约一个小时后 并给出一般的无法显示网页错误 类似于您尝试导
  • 使用 boost::random 作为 std::random_shuffle 的 RNG

    我有一个程序 使用来自 boost random 的 mt19937 随机数生成器 我需要进行 random shuffle 并希望为此生成的随机数来自此共享状态 以便它们可以相对于梅森扭曲器先前生成的数字具有确定性 我尝试过这样的事情 v
  • 不先查询就更新记录?

    假设我查询数据库并加载项目列表 然后 我在详细视图表单中打开其中一个项目 而不是从数据库中重新查询该项目 而是从列表中的数据源创建该项目的实例 有没有办法可以更新数据库记录而不获取单个项目的记录 这是我现在的做法示例 dataItem it
  • jquery 在 contenteditable div 中设置光标位置

    问题的旧版本如下 经过更多研究后 我决定重新表述这个问题 和以前一样 问题是 我需要聚焦一个 contenteditable div 而不突出显示文本 在 Chrome 中直接聚焦突出显示文本 我意识到人们通过重置文本区域中的插入符位置来解
  • 如何使用 Maven 在 Vaadin 7 中仅编译必要的小部件?

    我是 Vaadin 框架的新手 我看起来非常有趣 使用 eclipse 和 Maven 来开发和构建我的应用程序 我发现很烦人 每次我进行 mvn clean install 时都会花费很长时间来构建应用程序 我发现这是因为它编译了整套小部
  • 如何以编程方式设置 rw- r-- r-- 权限?

    我正在开发一个应用程序 可以将应用程序的数据恢复到 data data packageName 恢复文件后 我将权限设置为 rw r r 我是这样设置的 public int chmod File path int mode throws
  • 快速将 XML 转换为 Excel [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 将 XML 中的 112K 行转换为 Excel 视图的最快 最省力 而不是超级性能 方法是什么 为什么这么复杂 只需使用 文件 gt 打开 打开文件 选择 xml 并加载它 看
  • 消除无样式内容的闪烁

    如何停止网页上出现无样式内容 FOUC 使用 css 样式最初隐藏某些页面元素 然后使用 javascript 在页面加载后将样式更改回可见的问题是 未启用 javascript 的人将永远无法看到这些元素 所以这是一个不会正常降级的解决方