lottie在前端引用

以在vue中使用为例
一、下载lottie

npm i vue-lottie -S

二、在main.js中引入vue-lottie

import lottie from 'vue-lottie'
Vue.component('lottie',lottie)

三、在组件中注册使用
1、引入json

import * as animationData from '@/assets/lottie/data.json'

2、使用组件

<lottie :options="defaultOptions" v-on:animCreated="handleAnimation"/>

3、data、methods

data () {
  return {
    defaultOptions: { animationData:animationData.default },
    anim : {}
  }
},
methods: {
  handleAnimation(anim){
    this.anim = anim // 这里可以看到lottie对象的全部属性
    console.log(anim)
  }
}

引入资源是遇到的问题:图片文件找不到
解决方法:
方法一:
① 把静态资源文件移到public文件夹下(public/img/lottie/images),与"u"的值相对应,加载成功!
在这里插入图片描述

② 万能:资源文件依旧放在src/assets/lottie下,在组件中使用时动态加载静态资源,成功!

import * as animationData from '@/assets/lottie/data.json'

// 获取静态资源

animationData.assets.forEach((item) => {
  item.u = ''
  if (item.w && item.h) {
   	 item.p = require(`@/assets/lottie/images/${item.p}`)
  }
}); 

四、Lottie-web 常用方法
animation.play(); // 播放,从当前帧开始播放

animation.stop(); // 停止,并回到第0帧

animation.pause(); // 暂停,并保持当前帧

animation.goToAndStop(value, isFrame); // 跳到某个时刻/帧并停止isFrame(默认false)指示value表示帧还是时间(毫秒)

animation.goToAndPlay(value, isFrame); // 跳到某个时刻/帧并进行播放

animation.goToAndStop(30, true); // 跳转到第30帧并停止

animation.goToAndPlay(300); // 跳转到第300毫秒并播放

animation.playSegments(arr, forceFlag); // arr可以包含两个数字或者两个数字组成的数组,forceFlag表示是否立即强制播放该片段

animation.playSegments([10,20], false); // 播放完之前的片段,播放10-20帧

animation.playSegments([[0,5],[10,18]], true); // 直接播放0-5帧和10-18帧

animation.setSpeed(speed); // 设置播放速度,speed为1表示正常速度

animation.setDirection(direction); // 设置播放方向,1表示正向播放,-1表示反向播放

animation.destroy(); // 删除该动画,移除相应的元素标签等。在unmount的时候,需要调用该方法
五、Lottie-web 常用的事件
data_ready:动画数据加载完毕
animation.addEventListener(‘data_ready’, () => { console.log(‘animation data has loaded’); });
config_ready:完成初始配置后

data_failed:当无法加载动画的一部分时

loaded_images:当所有图像加载成功或错误时

DOMLoaded:将元素添加到DOM时

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端引用.json格式动图的步骤如下: 1. 首先,需要使用require引用json文件,并在setup函数中初始化toJSON变量,以便模板使用。这是因为如果直接在标签上写图片/动画的路径,路径会被转为base64格式。但是通过require引入变量,设置静态路径,可以显示正常路径。例如:const toJSON = require('@/assets/json/half.json')。\[1\] 2. 在具体使用时,需要将animationData属性设置为toJSON变量,同时设置height和width属性来指定动画的高度和宽度。具体配置可以参考Lottie的Github文档。例如:<Vue3Lottie :animationData="toJSON" :height="13" :width="16" />。\[2\] 3. 完成以上操作后,页面加载时就能显示出动画效果了。需要注意的是,有两个小坑需要避免。首先,引入json文件时要使用require而不是import,否则json动画无法显示出来。其次,json对象里的图片地址是针对服务器项目目录的,默认是images目录,可以根据需要进行修改。同时,图片目录需要放置在项目根目录下。\[3\] 希望以上信息对您有帮助! #### 引用[.reference_title] - *1* *2* [vue3.0项目中lottie解析json动画格式](https://blog.csdn.net/mfuuty/article/details/125219376)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue-lottie加载json动画](https://blog.csdn.net/JJ_huahua/article/details/113179572)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值