当前位置:首页 > VUE

vue实现抖动样式

2026-02-17 16:06:13VUE

实现抖动效果的CSS方法

在Vue中实现抖动效果,可以通过CSS动画或关键帧来实现。定义一个抖动动画的关键帧:

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
  20%, 40%, 60%, 80% { transform: translateX(5px); }
}

.shake {
  animation: shake 0.5s ease-in-out;
}

Vue组件中使用抖动样式

在Vue模板中,通过动态绑定class来触发抖动效果:

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

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

使用第三方库实现高级抖动

安装vue-shake库可以快速实现更复杂的抖动效果:

npm install vue-shake

在组件中使用:

<template>
  <shake>
    <div>这个元素会持续抖动</div>
  </shake>
</template>

<script>
import { Shake } from 'vue-shake'

export default {
  components: {
    Shake
  }
}
</script>

自定义抖动参数

通过CSS变量可以自定义抖动幅度和持续时间:

vue实现抖动样式

.shake-custom {
  --shake-intensity: 8px;
  --shake-duration: 0.8s;
  animation: shake var(--shake-duration) ease-in-out;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(calc(-1 * var(--shake-intensity))); }
  75% { transform: translateX(var(--shake-intensity)); }
}

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

相关文章

vue实现必填

vue实现必填

Vue 实现表单必填验证的方法 在Vue中实现表单必填验证可以通过多种方式完成,以下是几种常见的方法: 使用HTML5原生属性 最简单的必填验证可以通过HTML5的required属性实现: &l…

vue实现tap

vue实现tap

Vue 实现 Tap 事件 在移动端开发中,Tap 事件比 Click 事件更常用,因为 Click 事件有 300ms 延迟。以下是几种在 Vue 中实现 Tap 事件的方法。 使用第三方库 安装…

vue实现评分

vue实现评分

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

vue 实现报价

vue 实现报价

Vue 实现报价功能 在 Vue 中实现报价功能通常涉及前端表单交互、数据计算和与后端 API 的通信。以下是实现报价功能的几种常见方法: 表单设计与数据绑定 使用 Vue 的 v-model 指…

vue实现 页面

vue实现 页面

Vue 实现页面的核心方法 创建 Vue 项目 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 是官方脚手架工具,适合传统项目;Vite 提供更快的现代构建体验。 npm cre…

vue实现伸缩

vue实现伸缩

Vue实现伸缩功能的方法 使用CSS过渡和Vue的v-if或v-show 通过CSS的transition属性结合Vue的条件渲染指令(v-if或v-show)可以实现元素的伸缩效果。定义一个CSS类…