当前位置:首页 > VUE

vue实现抖动样式

2026-01-16 23:32:52VUE

实现抖动效果的CSS方法

在Vue中实现抖动效果可以通过CSS动画或第三方库完成。以下是几种常见方法:

CSS关键帧动画 定义一个@keyframes抖动动画并应用到元素:

.shake {
  animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both;
}
@keyframes shake {
  10%, 90% { transform: translate3d(-1px, 0, 0); }
  20%, 80% { transform: translate3d(2px, 0, 0); }
  30%, 50%, 70% { transform: translate3d(-4px, 0, 0); }
  40%, 60% { transform: translate3d(4px, 0, 0); }
}

Vue动态绑定类名

通过数据驱动动态添加/移除抖动类:

<template>
  <div :class="{ shake: isShaking }" @click="triggerShake">
    点击抖动
  </div>
</template>

<script>
export default {
  data() {
    return { isShaking: false }
  },
  methods: {
    triggerShake() {
      this.isShaking = true
      setTimeout(() => this.isShaking = false, 500)
    }
  }
}
</script>

使用第三方动画库

安装animate.css库:

npm install animate.css

在Vue组件中使用:

<template>
  <div class="animate__animated" :class="{'animate__headShake': isShaking}">
    头部抖动效果
  </div>
</template>

<script>
import 'animate.css'
export default {
  data() { return { isShaking: false } }
}
</script>

自定义指令实现

创建全局抖动指令:

// main.js
Vue.directive('shake', {
  inserted(el, binding) {
    el.addEventListener('click', () => {
      el.classList.add('shake')
      setTimeout(() => el.classList.remove('shake'), 500)
    })
  }
})

使用指令:

<div v-shake>点击触发指令抖动</div>

性能优化建议

对于频繁触发的抖动动画,建议使用will-change属性优化:

vue实现抖动样式

.shake {
  will-change: transform;
  /* 其他动画属性 */
}

以上方法可根据实际需求选择,CSS动画方案性能最佳,第三方库提供更多预设效果,自定义指令则更适合全局复用场景。

标签: 样式vue
分享给朋友:

相关文章

vue实现组件循环

vue实现组件循环

Vue 组件循环的实现方法 在 Vue 中实现组件循环通常使用 v-for 指令,可以循环渲染数组或对象的数据到组件上。 基本数组循环 通过 v-for 指令遍历数组,渲染多个相同结构的组件。…

用vue实现搜索查询

用vue实现搜索查询

实现搜索查询的基本思路 在Vue中实现搜索查询功能通常涉及以下几个核心部分:数据绑定、事件监听、过滤逻辑和UI反馈。以下是一个完整的实现方案。 数据绑定与输入框 创建一个Vue组件,包含一个输入框用…

vue手写签名如何实现

vue手写签名如何实现

实现手写签名的基本思路 在Vue中实现手写签名功能,通常需要借助HTML5的Canvas API来捕获用户的绘制操作。核心流程包括初始化画布、监听触摸/鼠标事件、记录轨迹以及生成签名图片。…

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue slot实现

vue slot实现

vue slot 的实现方法 在 Vue 中,slot 是一种内容分发机制,允许父组件向子组件传递模板内容。以下是几种常见的 slot 实现方式: 默认 slot 默认 slot 是最基础的 slo…

vue 全景实现

vue 全景实现

Vue 全景实现方案 在Vue中实现全景效果,通常需要结合WebGL或第三方库来处理3D场景渲染。以下是几种常见方法: 使用Three.js库 Three.js是一个强大的WebGL库,适合创建3D…