当前位置:首页 > 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部分:

js实现开灯

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

通过CSS类切换

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

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

JavaScript部分:

js实现开灯

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过渡属性:

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实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js类实现

js类实现

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

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现文字滚动

js实现文字滚动

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