当前位置:首页 > VUE

vue实现点亮灯光

2026-01-15 01:41:04VUE

Vue 实现点亮灯光效果

使用 Vue 实现点亮灯光效果可以通过动态绑定样式或类名,结合 CSS 动画或过渡效果完成。以下是几种常见实现方式:

动态类名绑定

通过 v-bind:class 动态切换类名,控制灯光亮灭状态:

vue实现点亮灯光

<template>
  <div>
    <div class="light" :class="{ 'light-on': isOn }"></div>
    <button @click="toggleLight">Toggle Light</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      isOn: false
    }
  },
  methods: {
    toggleLight() {
      this.isOn = !this.isOn
    }
  }
}
</script>

<style>
.light {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: #ccc;
  transition: background-color 0.3s;
}

.light-on {
  background-color: yellow;
  box-shadow: 0 0 20px yellow;
}
</style>

使用 CSS 动画

添加更生动的发光动画效果:

vue实现点亮灯光

.light-on {
  background-color: yellow;
  animation: glow 1s infinite alternate;
}

@keyframes glow {
  from {
    box-shadow: 0 0 10px yellow;
  }
  to {
    box-shadow: 0 0 30px yellow;
  }
}

多个灯光控制

控制多个灯光可以使用数组存储状态:

<template>
  <div>
    <div 
      v-for="(light, index) in lights" 
      :key="index"
      class="light"
      :class="{ 'light-on': light.isOn }"
      @click="toggleLight(index)"
    ></div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      lights: [
        { isOn: false },
        { isOn: false },
        { isOn: false }
      ]
    }
  },
  methods: {
    toggleLight(index) {
      this.lights[index].isOn = !this.lights[index].isOn
    }
  }
}
</script>

使用第三方动画库

如需更复杂效果,可引入动画库如 anime.jsGSAP

<template>
  <div>
    <div ref="light" class="light"></div>
    <button @click="animateLight">Animate Light</button>
  </div>
</template>

<script>
import anime from 'animejs'

export default {
  methods: {
    animateLight() {
      anime({
        targets: this.$refs.light,
        backgroundColor: ['#ccc', 'yellow'],
        boxShadow: ['0 0 0 rgba(255,255,0,0)', '0 0 20px yellow'],
        duration: 1000,
        easing: 'easeInOutQuad'
      })
    }
  }
}
</script>

以上方法可根据实际需求选择或组合使用,Vue 的响应式特性使得状态管理和 DOM 更新变得简单高效。

标签: 灯光vue
分享给朋友:

相关文章

vue实现菜单栏锚点

vue实现菜单栏锚点

实现锚点菜单的基本思路 在Vue中实现菜单栏锚点功能,主要涉及两个方面:创建可跳转的锚点位置,以及菜单项的点击滚动控制。通过监听滚动事件可以高亮当前可见区域的对应菜单项。 创建页面锚点位置 在需要跳…

vue tag实现

vue tag实现

Vue 标签实现方法 在 Vue 中实现标签功能可以通过多种方式完成,常见场景包括动态标签生成、标签输入框、标签管理等。以下是几种典型实现方案: 动态标签列表渲染 使用 v-for 指令渲染标签数组…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue实现试卷

vue实现试卷

Vue实现试卷系统的基本思路 使用Vue.js构建试卷系统需要结合组件化开发、状态管理和后端数据交互。核心功能包括题目展示、答题逻辑、计时器和提交答案。 核心功能模块划分 试卷组件结构 试卷容器组…

vue实现机制

vue实现机制

Vue 实现机制的核心原理 Vue.js 的核心实现机制主要基于响应式系统、虚拟 DOM 和组件化设计。以下是关键实现细节: 响应式系统 Vue 通过 Object.defineProperty(V…

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HTML…