当前位置:首页 > VUE

vue实现开关灯

2026-03-28 10:12:41VUE

Vue 实现开关灯效果

核心思路

利用 Vue 的数据绑定和条件渲染特性,通过切换布尔值控制 CSS 类名或样式,实现灯光开关的视觉切换效果。

实现步骤

1. 基础模板结构

<div id="app">
  <button @click="toggleLight">开关灯</button>
  <div class="room" :class="{ 'light-on': isLightOn }"></div>
</div>

2. Vue 实例配置

new Vue({
  el: '#app',
  data: {
    isLightOn: false
  },
  methods: {
    toggleLight() {
      this.isLightOn = !this.isLightOn;
    }
  }
})

3. CSS 样式设计

.room {
  width: 200px;
  height: 200px;
  background-color: #333;
  transition: background-color 0.5s;
}

.light-on {
  background-color: #ffeb3b;
  box-shadow: 0 0 20px #fff;
}

进阶实现方案

动态图标切换

<button @click="toggleLight">
  {{ isLightOn ? '关灯' : '开灯' }}
  <i :class="isLightOn ? 'el-icon-light-on' : 'el-icon-light-off'"></i>
</button>

添加状态持久化

vue实现开关灯

created() {
  this.isLightOn = localStorage.getItem('lightStatus') === 'true'
},
methods: {
  toggleLight() {
    this.isLightOn = !this.isLightOn
    localStorage.setItem('lightStatus', this.isLightOn)
  }
}

注意事项

  • 过渡效果建议使用 CSS transition 而非 JavaScript 控制
  • 复杂场景可结合 Vuex 管理状态
  • 移动端注意添加适当的触摸反馈
  • 无障碍访问需添加 aria-pressed 属性

扩展功能

watch: {
  isLightOn(newVal) {
    document.body.style.backgroundColor = newVal ? '#f5f5f5' : '#222'
  }
}

标签: vue
分享给朋友:

相关文章

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中配置…

vue实现iframe

vue实现iframe

Vue 中实现 iframe 的方法 在 Vue 项目中,可以通过多种方式实现 iframe 的嵌入。以下是几种常见的方法: 使用原生 HTML iframe 标签 直接在 Vue 组件的模板中使用…

vue实现画图

vue实现画图

Vue 实现画图功能 在 Vue 中实现画图功能通常需要结合 HTML5 的 <canvas> 元素或第三方库。以下是几种常见的方法: 使用原生 Canvas API 通过 Vue 直接…

vue实现看板

vue实现看板

Vue 实现看板功能 使用 Vue 实现看板功能可以通过组件化开发、状态管理和拖拽库结合完成。以下是一个完整的实现方案: 基础项目结构 src/ ├── components/ │ ├── Ka…

vue实现评分

vue实现评分

Vue 实现评分功能 使用组件库实现 安装 element-ui 或 ant-design-vue 这类 UI 库,它们已经内置了评分组件。 以 element-ui 为例: <te…

vue实现双击

vue实现双击

Vue 实现双击事件的方法 在Vue中实现双击事件可以通过以下几种方式完成,具体选择取决于项目需求和开发习惯。 使用 @dblclick 指令 Vue提供了内置的@dblclick指令,可以直接在模…