微信小程序—如何使用动画加载神器Lottie

Lottie是什么?

可以简单理解为不管是Android、还是IOS或者是h5、小程序都能通过它去加载同一动画文件,然后实现相同效果。

当然它也需要化身成各个平台的版本,今天介绍的就是小程序版本的Lottie

Lottie小程序效果

在这里插入图片描述

在这里插入图片描述

Lottie体验

在这里插入图片描述

Lottie安装到小程序

通过npm安装
1、根目录下打开终端输入

npm install --save lottie-miniprogram

2、接着输入

npm init

一直回车下去,直至执行完毕

3、打开微信开发者工具:工具>构建npm

Lottie小程序代码

js

const app = getApp()
import lottie from 'lottie-miniprogram'
Page({
  data: {
    lottiePath:""
  },
  onLoad: function () {
    wx.getSystemInfo({
      success: function(res) {
        console.log(res)
      },
    })
    var that = this
    wx.cloud.getTempFileURL({
      fileList: [{
        fileID: 'cloud://normal-env-ta6pc.6e8/17008-loveduck.json',
        maxAge: 60 * 60, // one hour
      }]
    }).then(res => {
      that.setData({
        lottiePath:res.fileList[0].tempFileURL
      })
      that.init()
    }).catch(error => {
    })
  },
  init() {
    var that = this
    if (this._inited) {
      return
    }
    wx.createSelectorQuery().select('#canvas').node(res => {
      const canvas = res.node
      const context = canvas.getContext('2d')

      canvas.width = 300
      canvas.height = 300

      lottie.setup(canvas)
      this.ani = lottie.loadAnimation({
        loop: true,
        autoplay: false,
        //远程动画
        path:that.data.lottiePath,
        //本地动画
        // animationData: require('loveDuck.js'),
        rendererSettings: {
          context,
        },
      })
      this._inited = true
    }).exec()
  },
  play() {
    this.ani.play()
  },
  pause() {
    this.ani.pause()
  },
})

wxml

<view class="intro">Lottie动画</view>
<view style="text-align: center;">
  <canvas id="canvas" type="2d" style="display: inline-block; width: 300px; height: 300px;"></canvas>
  <button bindtap="play" style="width: 300px;">play</button>
  <button bindtap="pause" style="width: 300px;">pause</button>
</view>

json动画资源网站

lottie官网(很多设计师作品):https://lottiefiles.com
阿里设计网站(可自定义):https://design.alipay.com/emotion

问题

部分机型可能不支持加载远程动画

### 微信小程序使用Lottie动画 #### 插件安装与配置 为了在微信小程序中集成Lottie动画,需先下载并安装`lottie-miniprogram`插件。通过微信开发者工具完成此操作,在项目设置里找到第三方服务选项,添加指定名称的插件[^2]。 #### 创建Canvas组件 成功引入插件之后,下一步是在页面布局文件(`wxml`)内定义一个用于承载动画效果的<canvas>标签,并赋予其唯一标识符(id),以便后续脚本调用时能够准确定位到该元素。 ```html <!-- index.wxml --> <view class="container"> <!-- Canvas element for displaying Lottie animations --> <canvas type="2d" id="myCanvas"></canvas> </view> ``` #### 加载JSON格式的动画数据 接着处理动画资源本身——通常由设计师提供或自行创作保存为`.json`格式的数据包。确保这些文件放置于合适路径下方便程序读取;如果遇到兼容性问题,则可以考虑借助在线平台转换成适配本[^3]。 #### 初始化及控制动画播放 最后一步涉及编写JavaScript逻辑来初始化Lottie实例并与UI控件关联起来。这包括设定初始参数、监听事件以及响应用户的交互行为等。以下是简化代码片段: ```javascript //index.js const lottie = require('path/to/lottie.min'); Page({ onReady:function(){ const query = wx.createSelectorQuery(); query.select('#myCanvas').fields({node:true,size:true}).exec((res)=>{ let canvas=res[0].node; var animation = lottie.loadAnimation({ container: canvas, // the dom element that will contain the animation renderer: 'canvas', loop: true, autoplay: true, path: '/images/data.json' // url to your json file or object with JSON data. }); }) } }) ``` 上述方法实现了基本功能演示,实际开发过程中可能还需要针对不同场景调整细节部分以满足具体需求[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩烂小程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值