classlist JavaScript 正文切换 Chris Coyier 于 2021 年 7 月 6 日 DigitalOcean 为您的旅程各个阶段提供云产品。 立即开始使用 $200 免费信用额度! 我很感谢 这个技巧 的清晰度,Mikael Ainalem 在 Reddit 上发布了它 这是一行代码,它会在 <body> 上切换类,这样你就可以模拟不同的状态并在点击时在它们之间切换。 <body onclick="this.classList.toggle("active");"> 也可以在任何元素上使用! CodePen 嵌入备用 这可能是一件大事。 参见 “更改类的力量” 作为示例。 即使你不是一个 JavaScript 高手,classList 也许是你应该了解的唯一一个 API。
onclick
处理程序来自 1996 年,我看到很多人都使用它,我希望使用的人更少,因为它使 Content-Security-Policy 的实现更加困难。 对于学习、小型测试和演示来说,这些都没有问题,因为很少有人会在这些情况下实现 CSP。另一方面,
classList
来自 2010 年,我希望它成为一件大事。 对我来说,它已经是一件大事了:我再也不用classList
了(即使 IE 10 也支持它)。切换类非常强大,但不建议使用 onclick 属性。 使用标签并在其中写入代码或其他 .js 文件。 就像这样
document.querySelector("button").addEventListener(e => e.currentTarget.classList.toggle("active"));
将 css 代码放置在 style 标签或 .css 文件中,将 js 代码放置在 script 标签或 .js 文件中是主要方法
我认为你错过了这一部分。
“我创建演示时最常用的技巧之一是正文切换活动状态。 它可以让我快速测试 CSS 中的切换状态。 例如 .active .something { … }”
这不在生产环境中。 他们使用它来简单地测试不同的状态。
我偶尔会使用这个
我经常使用它。
我想补充一点
你可以使用 “toggle” 方法的第二个参数。
我们不用切换 “active” 类,而是可以使用第二个参数作为条件,如果为真,它会添加 “active” 类,否则会删除该类。
https://jsfiddle.net/az2Ldpuw/ 你可以在其中查看一个用例,其中切换处理程序只允许一个元素处于活动状态(它会从先前处于活动状态的元素中删除活动状态,并将该类添加到被点击的元素中)
我添加了一个新版本 https://jsfiddle.net/az2Ldpuw/2/,其中有两个用例,一个类似于单选按钮的情况(使用第二个参数)和一个复选框的情况。