h5引用svga实现动态效果

SVGA 是一种跨平台的开源动画格式,同时兼容 iOS / Android / Web。SVGA 除了使用简单,性能卓越,同时让动画开发分工明确,各自专注各自的领域,大大减少动画交互的沟通成本,提升开发效率。在web中引用会将动画转为Canvas

1,安装插件

 npm install svgaplayerweb —save

2,在组件中引用

 import SVGA from "svgaplayerweb"

3,使用

<template>

  <div id="demoCanvas" ref="demoCanvas"></div>

</template>

<script>

import SVGA from "svgaplayerweb";

export default {

  data(){

    return{

      bgImg:'https://file.nidong.com/upload/gift/20200520/upload_l3xlns9v1in4heomhwgbndzxt8quc9yb.svga'

    }

  },

  mounted() {                 // SVGA只能在页面渲染好后执行因为需要获取页面中id为‘demoCanvas’的标签

    this.setFill();

    this.SVGA();

  },

  methods: {

    SVGA() {

      let player = new SVGA.Player("#demoCanvas");

      let parser = new SVGA.Parser("#demoCanvas");

      parser.load(this.bgImg,function(videoItem) {                          //this.bgImg,图片路径需要线上地址,本地引用会报错

          player.setVideoItem(videoItem);

          player.startAnimation();

        }

      );

    },

    setFill() {               //适配不同屏

      var $_canvas = document.getElementById("demoCanvas"),

        w = window.innerWidth,

        h = window.innerHeight,

        screen_proportion = h / w,

        svga_proportion = 16 / 9;

      if (screen_proportion > svga_proportion) {

        //长屏幕

        $_canvas.style.width = h / svga_proportion + "px";

        $_canvas.style.left = (w - h / svga_proportion) / 2 + "px";

      } else {

        $_canvas.style.height = w * svga_proportion + "px";

        $_canvas.style.top = (h - w * svga_proportion) / 2 + "px";

      }

    }

  }

};

</script>

<style lang="scss" scoped>

#demoCanvas {     //因需求背景为动态图

  position:fixed;

  width: 100%;

  height: 100%;

  top: 0;

  left: 0;

  z-index: -1;

}
</style>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 动画效果一直是人机交互的一个非常重要的部分,动画效果的引入,会让交互变得更加友好,让用户获得更加愉悦的体验。...
    前端妹子ice阅读 700评论 0 4
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,596评论 1 45
  • 前言 在开发APP的过程中,需要在APP中实现设计同学的UE效果动画,一般都是通过代码实现的,当对于较复杂的动画时...
    Japho阅读 65,615评论 27 117
  • 在一个月黑风高的夜里,一位开发 Da Lao 在朋友圈吐槽『你们 UED 设计的动画,太炫了!我们实现不了……!』...
    PonyCui阅读 23,553评论 19 42
  • 一、概念 参考网页字体Serif和Sans-serif的区别及浏览器字体的设置CSS Font知识整理总结 1.F...
    合肥黑阅读 6,347评论 0 12