CSS 在 JS 之前,在 Firefox 中闪烁白色
CSS before JS and white flashes in Firefox?
Google Chrome的页面性能审计建议将CSS导入放在JS导入之前,以允许并行下载CSS和JS文件。
但是,我注意到这会导致 Firefox 在导航到另一个页面时在渲染新页面之前清除窗口。因此,如果我在JS之前有CSS,Firefox将清除旧页面,显示白屏半秒钟,然后显示新页面。如果我把JS放在CSS之前,旧页面将保留在屏幕上,直到它被新页面替换。后者显然看起来要好得多,因为标题永久保留在屏幕上。Chrome似乎没有这些问题。
这是一个已知问题吗?这里推荐的行动方案是什么?
你所描述的听起来像FOUC(无样式内容的闪光)。我做了一个脚本来反驳它。
主体有 2 种状态,分别派生自在加载时切换的.invisible
类和.visible
类。.invisible
类并不是真正必需的,除非您希望在页面退出时产生淡出效果。
function init(t) {
if (!t) {
t = 0;
}
setTimeout(show, t);
}
function show() {
document.body.classList.add('visible');
document.body.classList.remove('invisible');
}
.visible {
visibility: visible;
opacity: 1;
transition: opacity 2s linear;
}
.invisible {
visibility: hiden;
opacity: 0;
transition: visibility 0s 2s, opacity 2s linear;
}
<body class="invisible" onload="init(1000);">
<section style="width: 80vw; height: 80vh; background: blue; padding:15px;">
<h1 style="font-size: 40px; color: yellow">Title</h1>
<p style="font-size: 16px; color: white;">Lorem ipsum dolor sit amet, nullam probatus id pri. Et platonem salutatus prodesset has, has vidit oblique feugait id. Tincidunt democritum posidonium quo te. Quo ne iudico saperet dissentias, ea vim expetenda repudiandae, ius id postea sententiae
instructior. Ex porro explicari mei, nulla constituam sea no, eros adhuc quo id.</p>
</section>
</body>
相关文章:
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 使用jQuery以红色和黑色闪烁文本
- 我的Tizen应用程序在点击时会闪烁
- IE6在启用/禁用文本字段上闪烁
- .scroll()函数在上次更新后在谷歌chrome中定位闪烁
- 页面加载之间闪烁
- 创建闪烁“;文本“;在javascript中
- '返回'浏览器按钮返回白色页面
- 如何使用按键避免图像闪烁
- 使用setInterval()函数进行图像闪烁
- 1种颜色的Javascript闪烁文本更长
- 谷歌图表显示空白白色页面
- addClass,它更改bg图像,但在第一次加载时没有闪烁
- UI引导区渐变旋转木马闪烁白色
- 聚合物:页面加载时白色屏幕闪烁
- CSS 在 JS 之前,在 Firefox 中闪烁白色
- 如何使用jQuery实现“夜间模式”没有在每个页面加载时闪烁的白色
- Div背景色在动画前闪烁白色
- 如何防止白色'闪烁'对页面加载造成的背景图片加载延迟
- 我的Backbone应用程序会闪烁“白色”.因为我在开始一个新视图之前先删除了视图