VUE3&TS:转换AE导出的JSON为SVG

简介

AE制作的JSON文件,可以在项目中通过插件lottie-web转换为SVG显示。

官网文档链接

官网JSON文件转SVG的测试地址

具体实现

第一步:项目中安装插件

pnpm install lottie-web -D
// or
npm i lottie-web -D
// or
...

第二步:vue3需要引入类型声明

方式一:安装types类型声明依赖
这种方式,我第一次可以,但是后续尝试,发现找不到这个type包了,也可能时指令记错了,有知道的大佬麻烦评论告知一下。

pnpm install @types/lottie-web

方式二:在声明文件中定义

// shims-vue.d.ts
// 当然,若配置在其他文件中,也类似
declare module 'lottie-web'

在这里插入图片描述

第三步:页面使用

若json中有图片资源建议AE 中就生成 base64 格式的。
当然,图片是文件格式,也可以,需要注意的是把图片资源放在 public 目录下,否则转换后的svg会访问不到图片资源。

<template>
  <div class="penalty-goal-modal-box">
    <div
      ref="lottileRef"
      class="lottile"
    ></div>
  </div>
</template>

<script setup lang="ts">
import lottie from 'lottie-web'
import { onMounted, ref } from 'vue'
import dataJson from './json/penaltyGoal.json'

const lottileRef = ref() // 这就类似vue2的this.$refs.lottileRef

const getImg = () => {
  const params1: any = {
    container: lottileRef.value,
    renderer: 'svg',
    loop: false,
    autoplay: true,
    animationData: dataJson
  }
  lottie.loadAnimation(params1)
}

onMounted(() => {
  getImg()
})
</script>

<style scoped lang="less">
.penalty-goal-modal-box {
  position: absolute;
  top: 10%;
  right: 10%;
  bottom: 10%;
  left: 10%;
  #lottile {
    width: 100%;
    height: 100%;
  }
}
</style>

最后

觉得有用的朋友请用你的金手指点一下赞,或者评论留言一起探讨技术!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值