当前位置:首页 > JavaScript

js实现开灯

2026-02-01 15:47:36JavaScript

js实现开灯

js实现开灯

使用HTML和JavaScript实现开关灯效果

通过JavaScript操作DOM元素改变背景颜色或图片,模拟开关灯效果。以下是两种常见实现方式:

方法一:切换背景颜色

<!DOCTYPE html>
<html>
<head>
    <title>开关灯演示</title>
    <style>
        body {
            transition: background-color 0.5s;
        }
        .light-on {
            background-color: white;
            color: black;
        }
        .light-off {
            background-color: black;
            color: white;
        }
        button {
            padding: 10px 20px;
            font-size: 16px;
        }
    </style>
</head>
<body class="light-on">
    <button id="toggleBtn">关灯</button>

    <script>
        const toggleBtn = document.getElementById('toggleBtn');
        const body = document.body;

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

方法二:切换图片或图标

<!DOCTYPE html>
<html>
<head>
    <title>灯泡开关演示</title>
    <style>
        #bulb {
            width: 100px;
            height: 100px;
            background-size: contain;
            background-repeat: no-repeat;
        }
        .on {
            background-image: url('bulb-on.png');
        }
        .off {
            background-image: url('bulb-off.png');
        }
    </style>
</head>
<body>
    <div id="bulb" class="on"></div>
    <button id="toggleBtn">关灯</button>

    <script>
        const toggleBtn = document.getElementById('toggleBtn');
        const bulb = document.getElementById('bulb');

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

进阶实现:添加动画效果

// 在方法一的基础上添加以下CSS
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.light-on {
    animation: fadeIn 0.5s ease-in;
}

注意事项

  • 图片路径需要替换为实际可用的图片URL
  • 颜色值可以根据需求调整
  • 过渡效果时间可通过CSS的transition属性调整
  • 移动端适配可能需要额外媒体查询设置

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

相关文章

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现视口

js实现视口

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