当前位置:首页 > JavaScript

js夜间实现

2026-01-31 23:15:31JavaScript

夜间模式实现方法

通过JavaScript实现夜间模式通常涉及修改页面样式或切换CSS类。以下是几种常见方法:

CSS变量切换

function toggleNightMode() {
  document.documentElement.style.setProperty('--bg-color', isNightMode ? '#ffffff' : '#1a1a1a');
  document.documentElement.style.setProperty('--text-color', isNightMode ? '#333333' : '#e0e0e0');
}

类名切换

const body = document.body;
function toggleDarkMode() {
  body.classList.toggle('dark-mode');
}

// CSS示例
.dark-mode {
  background-color: #121212;
  color: #f5f5f5;
}

使用媒体查询同步

const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
darkModeMediaQuery.addListener((e) => {
  document.body.classList.toggle('dark-mode', e.matches);
});

持久化存储方案

使用localStorage保存用户偏好:

function setDarkMode(isDark) {
  localStorage.setItem('darkMode', isDark);
  document.body.classList.toggle('dark-mode', isDark);
}

// 初始化时读取
const savedMode = localStorage.getItem('darkMode');
if (savedMode !== null) {
  document.body.classList.toggle('dark-mode', savedMode === 'true');
}

渐变过渡效果

添加CSS过渡使切换更平滑:

body {
  transition: background-color 0.3s ease, color 0.3s ease;
}

完整实现示例

HTML结构:

<button id="themeToggle">切换夜间模式</button>

JavaScript实现:

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

const currentTheme = localStorage.getItem('theme');
if (currentTheme === 'dark' || (!currentTheme && prefersDarkScheme.matches)) {
  document.body.classList.add('dark-theme');
}

themeToggle.addEventListener('click', () => {
  document.body.classList.toggle('dark-theme');
  const theme = document.body.classList.contains('dark-theme') ? 'dark' : 'light';
  localStorage.setItem('theme', theme);
});

CSS样式:

js夜间实现

:root {
  --bg-light: #ffffff;
  --text-light: #333333;
  --bg-dark: #1a1a1a;
  --text-dark: #e0e0e0;
}

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

body.dark-theme {
  background-color: var(--bg-dark);
  color: var(--text-dark);
}

标签: 夜间js
分享给朋友:

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现删除

js实现删除

使用 splice 方法删除数组元素 splice 方法可以删除数组中的元素,并返回被删除的元素。它接受两个参数:起始索引和要删除的元素数量。 const array = [1, 2, 3, 4…

js 实现验证码

js 实现验证码

实现验证码的 JavaScript 方法 生成随机验证码 验证码通常由随机字符(数字、字母或混合)组成。以下代码生成一个 6 位随机验证码(数字和字母混合): function generateCa…