发布于 2026-01-05 0 阅读
0

使用 VanillaJS 的简单深色/浅色主题

使用 VanillaJS 的简单深色/浅色主题

深色模式的设计和功能,以及在深色和浅色主题之间切换的功能,是目前流行的 UI/UX 设计趋势🔥。所以,这里提供一个创建简单深色/浅色切换按钮的指南。
为了保持简洁,我没有使用任何花哨的切换开关,只用了一个简单的按钮。Codepen
链接在文末。🤖

让我们从HTML开始。

我使用列表来存储导航栏元素,所以
<li class="nav-item" id="toggle">🌞</li>

HTML部分到此结束,接下来我们来学习CSS。

CSS

// by default dark theme

:root {
    --bg-color: #171923;
    --bg-light: #232535;
    --font-color: #c5cddb;
    --font-light: #ffffff;
}

// light theme colors

.lightMode {
  --bg-color: #E8E6DC;
  --bg-light: #DCDACA;
  --font-color: #3D3D3D;
  --font-light: #202020;
}
Enter fullscreen mode Exit fullscreen mode

lightMode这是一个可以通过 js 添加到 body 中的类。

最后一部分 - Javascript

const toggle = document.querySelector("#toggle");
toggle.addEventListener("click", modeSwitch);

let isLight = true;

function modeSwitch() {
  isLight = !isLight;
  isLight ? toggle.innerText = "🌞" : toggle.innerText = "🌚";
  var rootElement = document.body;
  rootElement.classList.toggle("lightMode");
}
Enter fullscreen mode Exit fullscreen mode

什么是切换功能?

  • 切换是方法DOMTokenList() interface.
  • 它从令牌列表中移除令牌并返回 false。
  • 如果令牌不存在,则添加令牌并返回 true。

怎么了?

当我们点击切换按钮时,事件监听器会响应并调用modeSwitch()函数。该modeSwitch()函数会将类lightMode添加到 body 元素,从而激活lightMode颜色方案。



贡献者@casiimir

创建深色/浅色模式切换的方法有很多种。我找到一种简单的方法,并在此解释它的工作原理。
欢迎大家提出建议和反馈🤩。

文章来源:https://dev.to/vaishnavs/simple-dark-light-toggle-with-vanillajs-2cbj