当前位置:首页 > JavaScript

js实现关灯

2026-04-06 02:14:28JavaScript

使用JavaScript实现关灯效果

通过修改网页背景色和文字颜色实现关灯效果。以下是几种实现方式:

基础实现方式

创建一个切换按钮控制页面明暗状态:

let isDark = false;
function toggleLights() {
  isDark = !isDark;
  document.body.style.backgroundColor = isDark ? '#222' : '#fff';
  document.body.style.color = isDark ? '#eee' : '#000';
}

添加CSS类切换方式

更推荐使用CSS类切换方式,便于维护:

.dark-mode {
  background-color: #222;
  color: #eee;
}
function toggleLights() {
  document.body.classList.toggle('dark-mode');
}

使用localStorage保存状态

添加状态持久化功能:

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

// 页面加载时检查保存的状态
if (localStorage.getItem('darkMode') === 'true') {
  document.body.classList.add('dark-mode');
}

完整实现示例

HTML部分:

<button id="lightSwitch">关灯</button>

JavaScript部分:

const switchBtn = document.getElementById('lightSwitch');

function updateButtonText() {
  switchBtn.textContent = document.body.classList.contains('dark-mode') 
    ? '开灯' 
    : '关灯';
}

switchBtn.addEventListener('click', () => {
  document.body.classList.toggle('dark-mode');
  localStorage.setItem('darkMode', document.body.classList.contains('dark-mode'));
  updateButtonText();
});

// 初始化
if (localStorage.getItem('darkMode') === 'true') {
  document.body.classList.add('dark-mode');
}
updateButtonText();

进阶方案:匹配系统主题

检测用户系统颜色偏好:

js实现关灯

const prefersDark = window.matchMedia('(prefers-color-scheme: dark)');

function applyTheme() {
  const isDark = localStorage.getItem('darkMode') === 'true' || 
                (localStorage.getItem('darkMode') === null && prefersDark.matches);

  document.body.classList.toggle('dark-mode', isDark);
  updateButtonText();
}

prefersDark.addEventListener('change', applyTheme);

这些方法提供了从简单到完整的关灯效果实现方案,可根据实际需求选择适合的方式。

标签: js
分享给朋友:

相关文章

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…