当前位置:首页 > JavaScript

js实现暗黑模式

2026-04-07 14:39:59JavaScript

实现暗黑模式的JavaScript方法

通过JavaScript和CSS结合实现暗黑模式切换功能,以下是具体实现步骤:

方法1:使用CSS变量切换主题

在CSS中定义两套颜色变量,通过切换类名实现主题变更:

:root {
  --bg-color: #ffffff;
  --text-color: #333333;
}

.dark-mode {
  --bg-color: #121212;
  --text-color: #f0f0f0;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
  transition: background 0.3s ease;
}

JavaScript切换逻辑:

js实现暗黑模式

const toggleBtn = document.getElementById('theme-toggle');
const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)');

function toggleTheme() {
  document.body.classList.toggle('dark-mode');
  localStorage.setItem('theme', document.body.classList.contains('dark-mode') ? 'dark' : 'light');
}

// 初始化检查
if (localStorage.getItem('theme') === 'dark' || 
    (prefersDarkScheme.matches && !localStorage.getItem('theme'))) {
  document.body.classList.add('dark-mode');
}

toggleBtn.addEventListener('click', toggleTheme);

方法2:直接修改样式属性

适用于简单场景的快速实现:

function toggleDarkMode() {
  const isDark = document.body.style.backgroundColor === 'rgb(18, 18, 18)';
  document.body.style.backgroundColor = isDark ? '#ffffff' : '#121212';
  document.body.style.color = isDark ? '#333333' : '#f0f0f0';
}

方法3:使用Tailwind CSS的暗黑模式

js实现暗黑模式

如果使用Tailwind CSS,配置更简单:

  1. 在tailwind.config.js中添加:

    module.exports = {
    darkMode: 'class',
    // ...
    }
  2. 切换逻辑:

    document.documentElement.classList.toggle('dark');
    localStorage.setItem('darkMode', 
    document.documentElement.classList.contains('dark'));

注意事项

  • 使用localStorage保存用户偏好
  • 添加transition属性实现平滑过渡效果
  • 考虑系统偏好设置:window.matchMedia('(prefers-color-scheme: dark)')
  • 对于复杂项目,建议使用CSS变量方案维护性更好

完整示例HTML结构

<button id="theme-toggle">切换主题</button>

<script>
  // 这里放置上述JavaScript代码
</script>

标签: 模式js
分享给朋友:

相关文章

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数: fun…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <htm…