当前位置:首页 > JavaScript

js实现开灯

2026-04-06 08:39:47JavaScript

实现开关灯效果

使用JavaScript实现开关灯效果可以通过操作DOM元素的样式或类名来完成。以下是几种常见的方法:

通过切换背景颜色

创建一个按钮,点击时切换页面的背景颜色:

const button = document.getElementById('toggleButton');
let isLightOn = false;

button.addEventListener('click', function() {
    isLightOn = !isLightOn;
    document.body.style.backgroundColor = isLightOn ? 'yellow' : 'black';
    button.textContent = isLightOn ? '关灯' : '开灯';
});

对应的HTML部分:

<button id="toggleButton">开灯</button>

通过CSS类切换

定义两种样式类,通过切换类名实现效果:

.light-on {
    background-color: yellow;
}
.light-off {
    background-color: black;
}

JavaScript部分:

document.getElementById('toggleButton').addEventListener('click', function() {
    document.body.classList.toggle('light-on');
    document.body.classList.toggle('light-off');
    this.textContent = document.body.classList.contains('light-on') ? '关灯' : '开灯';
});

使用图片模拟灯泡

如果需要更真实的灯泡效果,可以使用图片切换:

const bulb = document.getElementById('bulb');
const switchBtn = document.getElementById('switch');

switchBtn.addEventListener('click', function() {
    const isOn = bulb.src.includes('on');
    bulb.src = isOn ? 'bulb-off.png' : 'bulb-on.png';
    switchBtn.textContent = isOn ? '开灯' : '关灯';
});

HTML部分:

<img id="bulb" src="bulb-off.png">
<button id="switch">开灯</button>

添加动画效果

如果需要更平滑的过渡效果,可以添加CSS过渡属性:

js实现开灯

body {
    transition: background-color 0.5s ease;
}

完整示例代码

<!DOCTYPE html>
<html>
<head>
    <style>
        body {
            transition: background-color 0.5s ease;
        }
        .light-on {
            background-color: yellow;
        }
        .light-off {
            background-color: black;
        }
    </style>
</head>
<body class="light-off">
    <button id="toggleBtn">开灯</button>

    <script>
        document.getElementById('toggleBtn').addEventListener('click', function() {
            document.body.classList.toggle('light-on');
            document.body.classList.toggle('light-off');
            this.textContent = document.body.classList.contains('light-on') ? '关灯' : '开灯';
        });
    </script>
</body>
</html>

这些方法可以根据实际需求选择使用,简单的颜色切换适合快速实现,而图片切换则能提供更真实的视觉效果。动画过渡可以提升用户体验。

标签: 开灯js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现视口

js实现视口

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

js实现文字滚动

js实现文字滚动

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