当前位置:首页 > 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;
}

使用媒体查询同步

js夜间实现

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过渡使切换更平滑:

js夜间实现

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样式:

: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实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEv…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClip…