vue项目中使用svga格式文件

在项目开发中,为了解决动态效果展示的需求,选择了SVGA格式而非GIF。由于SVGA不是标准的图片格式,需要借助svgaplayerweb库在canvas上进行绘制。首先安装该依赖,然后在JS中编写函数来播放SVGA动画。在实际应用中,可能会遇到跨域问题,但可以通过处理来解决。
摘要由CSDN通过智能技术生成

项目场景:

最近开发中,遇到一个场景:产品想要增加一些可后台上传的动画效果,本想用git格式图片,但由于git格式图片有各种缺陷,因此设计选用了svga格式


问题描述:

由于svga并不是某种image格式,因此不能直接展示,需要通过一些插件去解决,其本质还是使用canvas去绘制动画,这里使用svgaplayerweb来进行一个基本的绘制。
首先安装依赖:

// 安装
npm install svgaplayerweb --save

// 引入svgaplayerweb插件
import SVGA from 'svgaplayerweb';

// 引入svga

html中添加一个容器
<div id="demoCanvas" ref="demoCanvas"></div>

js中定义一个函数用来展示图片


 initMachineSVGA() {
    var mycanvas = document.getElementById("demoCanvas");
    // 修改容器大小
    mycanvas.style.width = 100 + "px"; 
    mycanvas.style.height = 100 + "px";
    
    let player = new SVGA.Player("#demoCanvas");
    let parser = new SVGA.Parser("#demoCanvas");
    // this.imageUrl 定义一个参数接收url
    parser.load(this.imageUrl, function (videoItem) { 
      player.setVideoItem(videoItem);
      player.startAnimation();
    });
  }

// ajax请求 获取url
this.$request.get({
   url: "xxx",
   done: (res) => {
       this.imageUrl= res.data.imageUrl
       // 获取url并调用绘图方法
       this.$nextTick(() => {
          this.initMachineSVGA()
        })
   },
 });

后续问题:

可能获取的url地址会产生跨域报错,只需要常规的解决跨域问题即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值