vue3.0+antd 项目使用SVGA文件

1,054 阅读1分钟

vue3.0+antd 项目使用SVGA文件。

公司需求是用svga的动画效果,之前没接触过,在网上找到一些在结合我使用的实际需求做了些改动。

1.先下载第三方包,

代码如下:


 yarn add svgaplayerweb
 
 或者
 
 npm i svgaplayerweb --save

我用的是yarn 所以用的第一种;

2.在相应的页面引入下载好的插件;

代码如下:

 import SVGA from 'svgaplayerweb';

3.在html页面的写好播放svga动画的容器 代码如下:

<a-modal
     :visible="true"
     :zIndex="zIndex"
     :footer="null"
     @cancel="handleCancel"
     :destroyOnClose="true"
   >
     <div class="svgaContainer">
       <div id="svgaAnimation" class="svga"></div>
     </div>
   </a-modal>

注意需要设置容器的大小,容器的大小决定svga动画的大小;

.svga {
    width: 500px;
    height: 500px;
  }

4.创建svga,

   //声明svga变量
      var player;
      var parser;
   // 播放svga的方法
      function svga_player(url) {
        player = new SVGA.Player('#svgaAnimation');
        parser = new SVGA.Parser();
        parser.load(url, function (videoItem) {
          player.setVideoItem(videoItem);
          zIndex.value = 9999;
          player.startAnimation();
        });
      }
   // 停止播放
      const handleCancel = () => {
        player.stopAnimation(true);
        player.clear();
        zIndex.value = -1;
      };

效果: 在这里插入图片描述

注:url我用的是线上的地址,我用本地文件没有播放出来,如果你们用的本地地址播放不了的话,可以试试网络地址;

这样就完成svga的播放,因为需求是点击预览图,弹出模态框播放动画,由于设置antd中的visible属性是无法播放svga的,应该是这个属性为false的时候,这个节点就不会存在,所以就找不到 svgaAnimation这个节点,SVGA这个插件就会报错,所以我就用zIndex这个属性来控制模态框的展示和隐藏;有知道其它好的方法的小伙伴可以留言,感谢!


以上就是今天要讲的内容,本文仅仅简单介绍了svga的使用。