当前位置:首页 > VUE

vue实现图标闪烁

2026-01-17 11:30:35VUE

使用 CSS 动画实现图标闪烁

在 Vue 中实现图标闪烁可以通过 CSS 动画或 JavaScript 定时器控制。以下是基于 CSS 动画的方法,性能更好且易于维护。

定义闪烁动画样式
在组件的 <style> 部分或全局 CSS 中定义一个闪烁动画:

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
.blink-icon {
  animation: blink 1.5s infinite;
}

在 Vue 组件中应用动画
将动画类绑定到图标元素上,例如使用 Font Awesome 或 SVG 图标:

<template>
  <div>
    <!-- Font Awesome 图标示例 -->
    <i class="fas fa-star blink-icon"></i>

    <!-- SVG 图标示例 -->
    <svg class="blink-icon" viewBox="0 0 24 24">
      <path d="M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z"/>
    </svg>
  </div>
</template>

通过动态类名控制闪烁

如果需要通过逻辑控制闪烁(如点击触发),可以使用 Vue 的动态类名绑定:

<template>
  <div>
    <i 
      class="fas fa-bell" 
      :class="{ 'blink-icon': isBlinking }"
      @click="toggleBlink"
    ></i>
  </div>
</template>

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

使用 JavaScript 定时器(备选方案)

如果需更复杂的控制(如非均匀闪烁),可通过 setInterval 动态修改样式:

vue实现图标闪烁

<template>
  <div>
    <i ref="icon" class="fas fa-heart"></i>
  </div>
</template>

<script>
export default {
  mounted() {
    this.startBlink();
  },
  beforeDestroy() {
    clearInterval(this.blinkTimer);
  },
  methods: {
    startBlink() {
      this.blinkTimer = setInterval(() => {
        this.$refs.icon.style.opacity = 
          this.$refs.icon.style.opacity === '0.3' ? '1' : '0.3';
      }, 500);
    }
  }
};
</script>

注意事项

  • 性能优化:CSS 动画比 JavaScript 定时器更高效,优先推荐。
  • 浏览器兼容性@keyframesanimation 支持所有现代浏览器。
  • 自定义参数:调整 animation-durationkeyframes 中的百分比可改变闪烁频率和效果。

标签: 图标vue
分享给朋友:

相关文章

vue 实现菜单

vue 实现菜单

Vue 实现菜单的方法 使用 Vue 实现菜单可以通过多种方式,以下是几种常见的方法: 使用 Vue Router 实现动态路由菜单 通过 Vue Router 可以动态生成菜单,根据路由配置自动渲…

vue课程实现

vue课程实现

Vue 课程实现方案 课程内容设计 Vue课程应从基础到高级逐步展开,涵盖Vue核心概念、组件化开发、状态管理、路由、构建工具等。基础部分包括Vue实例、模板语法、计算属性和侦听器。中级部分深入组件通…

vue实现筛选

vue实现筛选

实现筛选功能的基本思路 在Vue中实现筛选功能通常需要结合数据绑定、计算属性和方法。筛选的核心逻辑是根据用户输入的条件过滤原始数据列表,并动态更新显示结果。 数据准备 定义一个数组存储原始数据,另一…

vue实现select

vue实现select

Vue 实现 Select 组件的方法 在 Vue 中实现 Select 组件可以通过多种方式完成,以下是几种常见的方法: 使用原生 HTML select 元素 原生 HTML 的 <sel…

vue实现甘特图

vue实现甘特图

使用 Vue 实现甘特图 基于开源库(如 vue-ganttastic) 安装依赖库: npm install vue-ganttastic 示例代码: <template> &l…

vue实现单击

vue实现单击

Vue 实现单击事件的方法 在 Vue 中实现单击事件可以通过 v-on 指令或简写的 @ 符号绑定事件处理器。以下是几种常见的实现方式: 基础用法 通过 v-on:click 或 @click 绑…