gpt4 book ai didi

javascript - 使用 JavaScript 更改元素上的 CSS 类,无需 FOUC

转载 作者:行者123 更新时间:2023-12-03 06:22:45 25 4
gpt4 key购买 nike

我发现了一种使用 JavaScript 更改元素类的 HTML5 方法。

HTML:

<div id="bootstrap-container" class="container-fluid fill-height">
<!-- Content -->
</div>

JavaScript:

var mql = window.matchMedia('(min-width: 1200px)');
if (mql.matches) {
var containerElement = document.querySelector('#bootstrap-container');
if (containerElement.classList.contains('container-fluid')) {
containerElement.classList.remove('container-fluid');
containerElement.classList.add('container');
}
}

这工作正常,除了有一个明显的 FOUC加载/刷新页面时。

我怎样才能制作FOUC走开吗?

最佳答案

当浏览器解析您的 HTML 文件时,他将在他找到它的地方执行您的 JavaScript(内联或通过引用 <script src="script.js"> )。因此,您有 2 种可能性来避免提到的 FOUC。

  1. 您之前执行 JavaScript(例如,作为您操作类的元素正下方的内联 JavaScript)。仅设置 1 个“媒体查询类”(例如在 body 标签上)并将相应的脚本放在正下方可能是个好主意

  2. 您将隐藏内容,直到执行 JavaScript。例如。你可以做这样的事情

HTML

<body class="loading">
...
</body>

CSS

body.loading {
visibility: hidden;
}

JS

var mql = window.matchMedia('(min-width: 1200px)');
if (mql.matches) {
var containerElement = document.querySelector('#bootstrap-container');
if (containerElement.classList.contains('container-fluid')) {
containerElement.classList.remove('container-fluid');
containerElement.classList.add('container');
}
}

document.body.classList.remove("loading")

关于javascript - 使用 JavaScript 更改元素上的 CSS 类,无需 FOUC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com