Vue3优质动画库推荐

1. GSAP (GreenSock Animation Platform)

特点:功能强大的专业动画库,支持复杂时间轴控制和高性能动画,适合精细交互效果。

安装

npm install gsap

Vue3+TS使用示例

<script setup lang="ts">
import { onMounted, ref } from 'vue'
import gsap from 'gsap'

const boxRef = ref<HTMLDivElement>(null)

onMounted(() => {
  if (boxRef.value) {
    // 创建时间轴动画
    const tl = gsap.timeline({
      defaults: { duration: 1, ease: 'power2.inOut' }
    })

    tl.to(boxRef.value, {
      x: 200,
      rotation: 360,
      opacity: 0.8
    }).to(boxRef.value, {
      y: 100,
      scale: 1.5
    }, '-=0.5')
  }
})
</script>

<template>
  <div ref="boxRef" class="box"></div>
</template>

<style scoped>
.box { width: 100px; height: 100px; background: #4A6FA5; }
</style>

2. Lottie (vue3-lottie)

特点:支持After Effects导出的高质量动画,通过JSON文件渲染,适合复杂图标和UI动效。

安装

npm install vue3-lottie@latest --save

配置与使用

import { createApp } from 'vue'
import App from './App.vue'
import Vue3Lottie from 'vue3-lottie'
import 'vue3-lottie/dist/style.css'

createApp(App).use(Vue3Lottie).mount('#app')
<template>
  <Vue3Lottie
    :animationData="animationData"
    :width="200"
    :height="200"
    :loop="true"
  />
</template>

<script setup lang="ts">
import animationData from '../assets/animations/loading.json'
</script>

3. Motion Vue

特点:专为Vue3设计的声明式动画库,支持手势驱动和状态过渡动画,API简洁直观。

安装

npm install motion-vue

使用示例

<template>
  <Motion
    :animate="{ scale: isHovered ? 1.1 : 1, opacity: 1 }"
    :transition="{ type: 'spring', stiffness: 300 }"
    @mouseenter="isHovered = true"
    @mouseleave="isHovered = false"
  >
    <button class="btn">悬停动画</button>
  </Motion>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { Motion } from 'motion-vue'

const isHovered = ref(false)
</script>

选型建议

  • 复杂交互动画:优先选择GSAP,适合页面过渡、滚动动画等场景
  • 高质量UI动效:使用Lottie,可从获取海量现成动画
  • 轻量级声明式动画:尝试Motion Vue,适合快速实现组件级动画
  • 性能敏感场景:避免同时使用多个动画库,优先选择原生CSS过渡或Vue内置<Transition>组件
### Vue3 中实现轮播图动画效果的方法 #### 使用 `vue3-carousel` 组件 对于希望利用现有库来构建轮播图的应用场景而言,`vue3-carousel` 提供了一种简便的方式。此组件专为 Vue 3 设计,具有良好的兼容性和易用性特点[^1]。 安装该包可以通过 npm 或 yarn 完成: ```bash npm install @splidejs/vue-splide ``` 或者 ```bash yarn add @splidejs/vue-splide ``` 接着,在项目文件里引入并注册这个插件: ```javascript import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; // 导入 vue3-carousel 及其样式表 import &#39;vue3-carousel/dist/carousel.css&#39;; import Carousel, { Slide, Pagination, Navigation } from &#39;vue3-carousel&#39;; const app = createApp(App); app.use(Carousel).use(Slide).use(Pagination).use(Navigation); app.mount(&#39;#app&#39;); ``` 在模板部分,则可以直接使用 `<carousel>` 标签及其子标签来进行布局设计: ```html <template> <div class="carousel-wrapper"> <!-- 轮播容器 --> <carousel :items-to-show="1" :wrap-around="true"> <!-- 单个幻灯片项 --> <slide v-for="(image, index) in images" :key="index"> <img :src="image.url"/> </slide> <!-- 分页器和导航按钮 (可选)--> <template #addons> <pagination /> <navigation /> </template> </carousel> </div> </template> ``` 上述代码展示了如何通过设置属性如 `items-to-show`, `wrap-around` 来控制显示数量及循环播放行为;同时也包含了分页指示符与前后翻转控件的添加方式。 #### 利用 `Vue Splide` 插件增强体验 如果追求更丰富的交互特性和更好的性能表现,那么基于 TypeScript 编写的 `Vue Splide` 将会是一个不错的选择。这款工具不仅支持多种类型的轮播模式——比如单张图片切换、多列排列或是焦点缩放等形式——而且提供了极为平滑自然的画面过渡效果[^2]。 同样的,先完成依赖项的获取操作: ```bash npm i @splidejs/splide@latest @splidejs/vue-splide@next ``` 随后按照官方文档指引进行必要的初始化工作即可享受由 `Splide` 带来的优质视觉盛宴。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一池勺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值