vue3前端加载动画 lottie-web 的简单使用案例

什么是 Lottie
Lottie 是 Airbnb 发布的一款开源动画库,它适用于 Android、iOS、Web 和 Windows 的库。 它提供了一套从设计师使用 AE(Adobe After Effects)到各端开发者实现动画的工具流。

UED 提供动画 json 文件即可, 开发者就可以直接运用在 iOS、Android、Web 和 React Native之上,无需其他额外操作。

 

Lottie-Web 是 Lottie 在 web 端的技术方案。

Lottie-Web 提供了 SVG、Canvas 和 HTML 三种渲染模式,一般使用 Svg 或 Canvas 即可。

1、SVG 渲染器支持的特性最多,也是使用最多的渲染方式。并且 SVG 是可伸缩的,任何分辨率下不会失真;
2、Canvas 渲染器就是根据动画的数据将每一帧的对象不断重绘出来;
3、HTML 渲染器受限于其功能,支持的特性最少,只能做一些很简单的图形或者文字,也不支持滤镜效果。

 安装依赖

npm install lottie-web --save

 从官网下载了一个json文件示例

LottieFiles: Download Free lightweight animations for website & apps.

也可以下载gif格式

 基本使用

<script setup>
import { ref, onMounted } from 'vue'
import lottie from 'lottie-web'

const lottieInstance = ref(null)
const lottieInstance2 = ref(null)

let imgName = 'Animation - 1712559820721.json'
const getImg = () => {
    return new URL(`/src/assets/${imgName}`, import.meta.url).href;
}
const init = () => {
  // 读取动画容器
  const lottieContainer = document.getElementById('lottieId')
  if (!lottieContainer) return;
  // 实例化
  lottieInstance.value = lottie.loadAnimation({
    // UED 提供的 动画的 json 文件
    path: 'https://static-cdn.canyuegongzi.xyz/lf20/lf20_jv0xz0qi.json',
    // 渲染方式
    renderer: "svg",
    // 是否循环
    loop: true,
    autoplay: true, // 自动播放
    container: lottieContainer,  // 用于渲染的容器
  });

  // 初始化第二个动画
  const lottieContainer2 = document.getElementById('lottieId2')
  if (!lottieContainer2) return;
  lottieInstance2.value = lottie.loadAnimation({
    path: getImg(),
    // path: './src/assets/Animation - 1712559820721.json',
    renderer: "svg",
    loop: true,
    autoplay: true,
    container: lottieContainer2
  });
}

const onStart = () => {
  lottieInstance.value?.play();
  lottieInstance2.value?.play(); 
}

onMounted(() => {
  init()
  onStart()
})
</script>

<template>

  <div class="card">
    <img src="../assets/Animation - 1712559725257.gif" />
    <img src="../assets/Animation - 1712559820721.gif" />
  </div>
  <div style="display: flex;">
    <div id="lottieId"></div>
    <div id="lottieId2"></div>
  </div>

</template>

<style scoped>

#lottieId {
  width: 300px;
  height: 300px;
}

#lottieId2 {
  width: 300px;
  height: 300px;
}
</style>

文章参考自

http://t.csdnimg.cn/fh4Ww

lottie-web,lottie动画使用详解_动画_jasmine 莉-华为开发者联盟HarmonyOS专区

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue 3中使用Lottie-web相对简单。首先,你需要确保已经安装了Lottie-web库,你可以通过npm或yarn来安装它。一旦安装完成,你就可以在Vue 3项目中使用它了。 在你的Vue 3项目中,首先需要在你的组件中导入Lottie-web库。你可以在组件的头部添加以下代码来导入Lottie-web: import lottie from 'lottie-web'; 接下来,你可以在组件的methods或mounted函数中使用Lottie-web加载和播放动画。例如,你可以在mounted函数中添加以下代码: mounted() { this.loadAnimation(); }, methods: { loadAnimation() { const element = document.getElementById('lottie-animation'); if (element) { const animation = lottie.loadAnimation({ container: element, renderer: 'svg', loop: true, autoplay: true, path: 'path/to/your/animation.json' // 你的动画文件的路径 }); } } } 在上面的代码中,我们首先通过getElementById获取到一个DOM元素,它将用作动画的容器。然后,我们使用Lottie-web的loadAnimation函数来加载动画,传递了一些选项参数,比如renderer,loop和autoplay。最后,我们指定了动画文件的路径。 这只是一个简单的例子,你可以根据你的需求来调整代码。请确保在你的组件模板中有一个对应的DOM元素,它将被用作动画的容器,例如: <template> <div id="lottie-animation"></div> </template> 这样你就可以在Vue 3中使用Lottie-web了。记得根据你的具体需求来进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值