微信小程序使用lottie动画(lottie-miniprogram)

注意,想要在小程序中使用lottie动画,需要引入lottie-miniprogram组件,注意主包大小(咱就是主包过大了,c)!!!

话不多比,直接开始!

第一步:使用npm引入lottie-miniprogram。

              去项目根目录cmd进命令行,输入神秘口令:

npm install --save lottie-miniprogram

第二步:引入完成以后,执行构建代码:

npm init

        敲回车以后,会出现许多待填项,直接全部回车就行了,因为

第三步:打开微信开发者工具,在左上角的    工具  - >   选择构建npm,再等个一两秒后会提示构建成功!

第四步:使用:

        1、首先你需要一个可以给你生成Lottie动画资源的ui,一般是使用ae做的,没有就只能自己做或者去"Alipay Design"去找了。

        2、在代码中使用

<canvas id="c0" type="2d" style="width: 100%; height: 100%;"></canvas>



import lottie from 'lottie-miniprogram'//引入lottie npm包
Page({
  data: {
   
  },
  onLoad() {
 const windowWidth = systemInfo.screenWidth; // 窗口宽度
    const windowHeight = systemInfo.screenHeight; // 窗口高度
    wx.createSelectorQuery().select('#c0').node(res => {
      const canvas = res.node
      const context = canvas.getContext('2d')
      canvas.width = windowWidth //设置宽高,也可以放到wxml中的canvas标签的style中
      canvas.hight = windowHeight 
      lottie.setup(canvas)//要执行动画,必须调用setup,传入canvas对象
 
      lottie.loadAnimation({//微信小程序给的接口,调用就完事了,原理不太懂
        loop: true,//是否循环播放(选填)
        autoplay: true,//是否自动播放(选填)
        path:'https://cdn.你的域名.com/aaa.json',//lottie json包的网络链接,可以防止小程序的体积过大,要注意请求域名要添加到小程序的合法域名中
        rendererSettings:{
          context//es6语法:等同于context:context(必填)
        }       
      })
    }).exec()
  }
})

        注意:我举得例子是将lottie动画资源放到服务器上的例子,如果你没有的话,想放在本地,就是这样:

<canvas id="c0" type="2d" style="width: 100%; height: 100%;"></canvas>



import lottie from 'lottie-miniprogram'//引入lottie npm包
Page({
  data: {
   
  },
  onLoad() {
 const windowWidth = systemInfo.screenWidth; // 窗口宽度
    const windowHeight = systemInfo.screenHeight; // 窗口高度
    wx.createSelectorQuery().select('#c0').node(res => {
      const canvas = res.node
      const context = canvas.getContext('2d')
      canvas.width = windowWidth //设置宽高,也可以放到wxml中的canvas标签的style中
      canvas.hight = windowHeight 
      lottie.setup(canvas)//要执行动画,必须调用setup,传入canvas对象
 
      lottie.loadAnimation({//微信小程序给的接口,调用就完事了,原理不太懂
        loop: true,//是否循环播放(选填)
        autoplay: true,//是否自动播放(选填)
        animationData: require('../json/data.js'),//自己找个路径放置静态资源,然后引入就行,在本地的话需要改成.js文件,并且把文件中的图片路径做修改。
        rendererSettings:{
          context//es6语法:等同于context:context(必填)
        }       
      })
    }).exec()
  }
})

然后就算是完成了。

坑:

本地存放资源的话,首先你要改成.js文件,第二你还要在文件最开头添加

module.exports =原来的代码

第三:如果json文件中有图片的话,需要修改图片路径。这就要结合你的实际路径了。

坑2:一定一定一定一定一定一定要记得销毁,释放内存!!!!!!!!!!!

尤其是使用多个动画资源的情况下,要不非常容易崩溃

//如果是在组件中的话
lifetimes: {
    attached() {
      ........
    },
    detached(){
      this.ani.destroy()
    }
  },

//如果是在主界面中的话

onUnload(){
      this.ani.destroy()
}

我在第二个坑死的老惨了!

结束下班!!!!

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
lottie-web是一个开源的JavaScript库,用于在Web上渲染和播放Lottie动画Lottie动画是由Adobe After Effects创建的矢量动画,可以使用Bodymovin插件导出为JSON格式,然后在网页上使用lottie-web库进行渲染和播放。 lottie-web库提供了很多功能和选项,以便开发者可以根据自己的需求使用和定制动画。它可以用于创建交互式的动画效果,如按钮的点击动画、加载动画、进度条动画等。此外,它还支持设置动画的循环次数、播放速度、淡入淡出效果等。 在使用lottie-web时,我们需要引入相关的CSS和JavaScript文件,并通过HTML的canvas元素来创建动画的容器。然后,我们可以使用lottie.loadAnimation()方法来加载并初始化动画,在loadAnimation()方法中,我们可以传入一些参数,如JSON文件路径、容器元素、循环次数等。 一旦动画加载完成,我们就可以使用lottie.play()方法来播放动画使用lottie.stop()方法来停止动画。此外,还有一些其他的方法,如lottie.pause()方法暂停动画lottie.setSpeed()方法设置播放速度等。 值得一提的是,lottie-web还支持事件监听,我们可以通过lottie.addEventListener()方法来监听动画的各种事件,如动画加载完成、播放完成等,以便于我们在合适的时机进行相应的处理。 总之,lottie-web文档提供了全面的使用说明和示例代码,可供开发者参考和学习。使用lottie-web,我们可以轻松地在Web上使用Lottie动画,为网页添加更加生动和有趣的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值