JavaScript 切换类

标签 javascript

'use strict'

const switcher = document.querySelector('.btn');
console.log(switcher);

switcher.addEventListener('click', function() {
    document.body.classList.toggle('dark-theme');

    let className = document.body.className;
    if (className == "light-theme") {
        this.textContent = "Dark";
    }
    else {
       this.textContent = "Light";
    }
});

不确定开关是如何工作的。当我单击按钮时,背景如何变回浅色主题,而脚本甚至没有指定更改回浅色主题?

最佳答案

这是document.body.classList.toggle('dark-theme');

如果该类存在,则将其删除。如果该类不存在,则会添加它。

您的按钮更改 HTML

<body class="light-theme">

<body class="light-theme dark-theme">

然后再回来。

使用 CSS 规则,如果声明了两个具有相同特性的规则集,并且其中一个规则集声明在另一个规则集之下,则如果两者都应用于某个元素,则下面的规则集将优先。所以

.light-theme {
  /* rules */
}
.dark-theme {
  /* rules */
}

意味着如果一个元素具有dark-themelight-themedark-theme的规则将覆盖任何重复的样式由light-theme应用。

关于JavaScript 切换类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67646060/

相关文章:

javascript - 仅当最小宽度为 800px 时才执行 Javascript

javascript - 对 iframe 高度变化使用react

javascript - 在 ASP.Net 中借助 VB 运行 javascript

javascript - Jquery 在单击时切换类,如果单击另一个菜单项则删除类

java - GWT JSNI - 调用特定对象的java方法

javascript - 在 Laravel 中通过 Ajax 获取表单中的数据

javascript - 如何获取前端上传文件的文件url

javascript - 使用中继进行身份验证和访问控制

javascript - AngularJS ng-repeat 操作 ID

javascript - 具有多个 URL 的 jQuery AJAX