首页 > web前端 > css教程 > 如何通过优雅降级消除无样式内容的 Flash?

如何通过优雅降级消除无样式内容的 Flash?

Susan Sarandon
发布: 2024-11-13 05:06:02
原创
549 人浏览过

How to Eliminate Flash of Unstyled Content with Graceful Degradation?

消除无样式内容的闪烁:一种优雅的降级方法

当网页元素短暂出现时,会发生无样式内容的闪烁(FOUC)在 JavaScript 启动应用这些样式之前,没有它们想要的样式。为了防止这种难看的效果,我们将探索一种解决方案,可以在不影响禁用 JavaScript 的用户功能的情况下优雅地降级。

使用 JavaScript 而不是 CSS 隐藏元素

最初使用 CSS 隐藏元素,然后使用 JavaScript 显示它们是有问题的,因为未启用 JavaScript 的用户将永远不会看到这些元素。更好的方法是使用 JavaScript 来隐藏和显示元素。

用于隐藏和显示页面内容的 jQuery

使用 jQuery,我们可以有效地隐藏页面内容:

$(document).ready(function() {
    $('body').hide();
    $(window).on('load', function() {
        $('body').show();
    });
});
登录后复制

通过 HTML 隐藏优化显示

但是,对于大页面,上述代码可能无法阻止 FOUC。因此,一旦头部遇到 JavaScript,我们就可以隐藏 HTML 元素:

<html>
  <head>
    <style type="text/css">
      .hidden {display:none;}
    </style>
    <script type="text/javascript">
      $('html').addClass('hidden');
      $(window).on('load', function() {
        $('html').removeClass('hidden');
      });  
    </script>
  </head>
  <body>
    <!-- Body Content -->
  </body>
</html>
登录后复制

请注意,jQuery addClass() 方法是在 $(window).on('load') 外部调用的回调以立即隐藏 HTML 元素。

此方法通过确保页面内容最初隐藏并在页面完全加载后显示,从而确保优雅降级,即使对于未启用 JavaScript 的用户也是如此。

以上是如何通过优雅降级消除无样式内容的 Flash?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板