当前位置:首页 > VUE

vue实现开关灯

2026-03-28 10:12:41VUE

Vue 实现开关灯效果

核心思路

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

实现步骤

1. 基础模板结构

vue实现开关灯

<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 样式设计

vue实现开关灯

.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>

添加状态持久化

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中实现拖动功能可以通过多种方式,包括原生HTML5的拖放API、第三方库如vuedraggable等。以下是几种常见的实现方法: 使用HTML5拖放API HTM…

vue实现treeview

vue实现treeview

Vue 实现 TreeView 的方法 使用递归组件实现 TreeView 递归组件是 Vue 中实现 TreeView 的常见方式。通过组件调用自身,可以轻松处理嵌套的树形结构数据。 <te…

vue 实现ztree

vue 实现ztree

在Vue中实现类似ZTree的功能,可以通过集成第三方库或自定义组件完成。以下是两种常见方法: 使用vue-tree组件 vue-tree是一个轻量级的Vue树形组件,支持复选框、懒加载等功能,适合…

vue弹幕实现

vue弹幕实现

Vue弹幕实现方法 弹幕功能常见于视频直播或评论区,以下是基于Vue的实现方案,涵盖基础弹幕、动画控制及性能优化。 基础弹幕渲染 通过v-for动态渲染弹幕列表,结合CSS实现横向移动效果。弹幕数据…

vue实现首页

vue实现首页

Vue 实现首页的基本步骤 安装 Vue.js 和相关依赖,可以通过 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 更适合现代前端开发。 npm instal…

vue实现导出excel实现流程

vue实现导出excel实现流程

安装依赖库 需要安装 xlsx 和 file-saver 库来处理 Excel 文件的生成和保存。通过 npm 或 yarn 安装: npm install xlsx file-saver # 或…