如何在微信小程序里使用Lottie动画库

2023-05-16

先看效果图:
1598250322634.gif

前言:

微信小程序的lottie动画库是按照lottie-web动画库改造而来。参考lottie-web:https://github.com/airbnb/lottie-web,以及官方文档:http://airbnb.io/lottie/#/

目前我们要用到的是http://airbnb.io/lottie/#/web

调用lottie.loadAnimation()启动动画。它采用以下形式将对象作为唯一参数:

  • animationData:具有导出的动画数据的对象。
  • path:动画对象的相对路径。(animationData和path是互斥的)
  • loop:true/false
  • autoplay:true / false,准备就绪后将立即开始播放
  • name:动画名称,以备将来参考
  • renderer:‘svg’/‘canvas’/'html’设置渲染器
  • container:在其上呈现动画的dom元素

它返回您可以通过播放,暂停,setSpeed等控制的动画实例。

lottie.loadAnimation({
  container: element, // the dom element that will contain the animation
  renderer: 'svg',
  loop: true,
  autoplay: true,
  path: 'data.json' // the path to the animation json
});
以上为web端的使用场景,那么我们如何在小程序中使用呢?
  1. 通过 npm 安装:
npm install --save lottie-miniprogram
npm init
  1. 传入 canvas 对象用于适配
<view style="text-align: center;">
  <canvas id="lottie_demo" type="2d" style="display: inline-block; width: 300px; height: 300px;" />
  <button bindtap="init" style="width: 300px;">初始化</button>
  <button bindtap="play" style="width: 300px;">播放</button>
  <button bindtap="pause" style="width: 300px;">暂停</button>
</view>
  1. 使用lottie接口。
const app = getApp()
import lottie from 'lottie-miniprogram'

Page({
  data: {

  },
  // 初始化加载动画
  init() {
    if (this.inited) {
      return
    }
    wx.createSelectorQuery().selectAll('#lottie_demo').node(res => {
      const canvas = res[0].node
      const context = canvas.getContext('2d')
      canvas.width = 300
      canvas.height = 300
      lottie.setup(canvas)
      this.ani = lottie.loadAnimation({
        loop: true,
        autoplay: true,
        animationData: require('../json/data.js'),
        rendererSettings: {
          context,
        },
      })
      this.inited = true
    }).exec()
  },
  play() {
    this.ani.play()
  },
  pause() {
    this.ani.pause()
  },
})

目前微信小程序只提供了两个接口。

lottie.setup(canvas)

在任何 lottie 接口调用之前,需要传入 canvas 对象

lottie.loadAnimation(options)**

与原来的 loadAnimation 有些不同,支持的参数有:

*   loop // 循环播放
*   autoplay //自动播放
*   animationData // 动画数据
*   path //(只支持网络地址)
*   rendererSettings.context //(必填)

json/data.js为找设计小姐姐要的Lottie动画json数据。我们这边需要将该json改为js。
即开头需要加上module.exports=,当然Lottie官方也收集了很多的动画资源:https://lottiefiles.com/

module.exports={xxxxxx}
代码片段如下:

https://developers.weixin.qq.com/s/Ah3fGQmz7VjE

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在微信小程序里使用Lottie动画库 的相关文章

  • 消息队列技术的介绍和原理(MQ)

    最近要做一个项目准备用分布式消息队列 xff0c 花点时间看了下 消息队列技术是分布式应用间交换信息的一种技术 消息队列可驻留在内存或磁盘上 队列存储消息直到它们被应用程序读走 通过消息队列 xff0c 应用程序可独立地执行 它们不需要知道
  • win10如何修改C盘User下的用户名

    温馨提示 仅供参考 xff0c 不建议小白在本机测试 xff0c 不然会有需要 重装 的风险 建议操作前设置还原点 重要数据备份 xff01 xff01 xff01 然后Win11就别尝试了 xff0c 而且一旦失败的话 xff0c 就只能
  • 极狐Gitlab操作手册

    用户管理 普通用户可以访问他们的群组和项目 用户可以无限制地访问所有群组 项目 用户和功能 群组管理 项目管理 创建项目 为项目添加成员 其它设置 为当前用户配置SSH密钥 本地生成SSH密钥 提交本地项目到gitlab span clas
  • WIN11之RocketMQ5.0安装

    官网地址 xff1a https rocketmq apache org docs quick start 下载地址 xff1a https rocketmq apache org dowloading 下载 系统要求 span class
  • Kubernetes 对象

    什么是对象 K8s集群中创建的任何东西都可以被视为对象 xff1a Deployment Pod Service等等 对象类型 kubectl api resources span class token comment 查询所有type
  • K8S DashBoard控制台

    前言 Dashboard 是基于网页的 Kubernetes 用户界面 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中 xff0c 也可以对容器应用排错 xff0c 还能管理集群资源 你可以使用 Dashbo
  • Debian11之基于二进制安装K8S(v1.26.x) 集群

    官网地址 xff1a https kubernetes io zh cn docs home supported doc versions 资源列表 主机IP主机名称主机角色软件192 168 111 30master1主节点1kube a
  • Kubernetes Service、Ingress、Ingress Controller

    Kubernetes 网络模型 K8S 是一种容器编排系统 xff0c 可以方便地管理和部署容器应用程序 它支持通过四层负载和七层负载向容器集群中的应用程序提供负载均衡 四层负载是一种基于传输层协议 xff08 例如TCP UDP xff0
  • 浅析JAVA中的抽象类

    span class hljs keyword abstract span class Animal span class hljs keyword abstract span span class hljs keyword void sp
  • 安装 Ubuntu

    1 del 进入bios 选择从USB启动 2 安装ubuntu 3 准备安装Ubuntu 不用选 4 安装类型 选择something else 可以自己分区 5 分为四个区 swap 交换分区 不用格式化 boot 引导和内核分区 格式
  • Linux安装libpcap(pcap.h库)(以Ubuntu 18.04为例)

    做毕业设计需要用到libpcap来抓包 借此次机会完整记录下自己的安装过程 xff0c 前人种树后人乘凉 到libpcap官网去下载最新的源码包 下载完成后tar xzf 文件 tar gz 解压 xff0c 于是我们可以看到完整的源码目录
  • rabbitmq的waitForConfirms和waitForConfirmsOrDie作用和区别

    rabbitmq的waitForConfirms和waitForConfirmsOrDie作用和区别 解决方法 xff1a 发布消息后通过执行channel waitForConfirmsOrDie xff08 long xff09 方法或
  • 环形缓冲区的实现原理(ring buffer)

    消息队列锁调用太频繁的问题算是解决了 xff0c 另一个让人有些苦恼的大概是这太多的内存分配和释放操作了 频繁的内存分配不但增加了系统开销 xff0c 更使得内存碎片不断增多 xff0c 非常不利于我们的服务器长期稳定运行 也许我们可以使用
  • 解决mac安装anaconda后遇到“conda: command not found“的问题

    最近新入了macbook pro xff0c 在安装好anaconda后 xff0c 图形界面中操作时没有任何问题的 xff0c 但打开终端后却遇到了conda指令无法使用的问题 xff0c 如下图 xff1a 这个问题的产生可能会有多种原
  • Android 7.0 Launcher3 去掉应用抽屉

    年初做过一个项目 xff0c 有一个需求就是需要将桌面变为单层不需要二级菜单 最近几次有小伙伴有这个问我这个解决办法 现在我将分享给大家 先上效果图 xff1a 功能分解 去除Allapp键 xff0c 调整HotSeat布局将所有应用摆在
  • Android 8.0 Settings流程分析与变动

    开 xff01 场 白 xff01 好 xff01 难 xff01 写 xff01 一 xff0c 相比Android Settings 7 0 如下图 xff0c 在7 0的基础上 xff0c 去掉了7 0新加的侧滑菜单 xff08 可能
  • Altium Designer PCB设置电源线粗细宽度+绘制时改变粗细

    一般电源线要给多个设备供电 xff0c 所以比信号线要粗一些 新建布线 Routing 的宽度规则 xff1a 然后如下图所示 xff0c 把这条规则重命名为width 5v 命名随意 并设置这条规则的作用对象为 xff1a 名字为 34
  • AndroidStudio安装BindView注解插件

    新版本androidStudio添加BindVIew插件可以直接在Build gradle Module app 里面的dependencies下添加 compile 39 com jakewharton butterknife 8 8 1
  • 漫话程序员们的家庭装修——书房篇

    身为一名程序员 xff0c 辛辛苦苦码代码N年 xff0c 终于攒下钱买了自己的小窝 xff0c 不好好犒劳一下自己都对不起自己的近视眼和鼠标手 这就来分享一下我装修的心得 xff0c 从书房开始 xff01 书房作为程序员在公司战斗一天回
  • 首次安装Android Studio 新建项目构建失败解决

    首次安装AS xff0c 新建项目需要下载构建所需jar包 xff0c 如果没有翻墙 xff0c 就很可能会导致下载失败 解决方案 xff1a 1 打开项目根目录下的build gradle文件 xff0c 把goole 和jcenter

随机推荐

  • Arch Linux安装中文输入法

    1 安装fcitx span class token function sudo span pacman S fcitx im 2 配置 如果以startx方式进入gnome 在 xinitrc xff0c exec之前中加入 xff1a
  • Activity和fragment的简单切换效果

    Activity有默认的切换效果 xff0c 但是这个效果我们也可以自定义 xff0c 主要用到overridePendingTransition int enterAnim int exitAnim 这个方法 xff0c 这个方法必须在s
  • java maven 连接mysql 8.0数据库

    JAVA maven项目 连接数据库 mysql8 0 查询 xff0c 插入 xff0c 删除 xff0c 更新 1 在pom xml加入mysql connector java依赖包 xff0c version要跟你的mysql版本对应
  • Windows无法安装到这个磁盘,选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装GPT磁盘。

    报错 xff1a Windows无法安装到这个磁盘 xff0c 选中的磁盘具有MBR分区表 在EFI系统上 xff0c Windows只能安装GPT磁盘 操作 xff1a 1 Windows安装程序界面如下 xff0c 使用快捷键shift
  • 华为Taishan服务器安装UOS操作系统

    今天2020 12 18 折腾了一遍华为Taishan服务器重装UOS20操作系统 xff0c 没经验 xff0c 一堆问题 xff0c 逐个排查解决的 做个记录 xff0c 以免下次再坑 1 光驱引导 最开始 xff0c 选择光驱引导安装
  • SLF4J用户手册(谷歌翻译版)

    本文翻译自slf4j官方用户手册 xff0c 地址 SLF4J Manual Java 的简单日志门面 SLF4J 用作各种日志框架的简单门面或抽象 xff0c 例如 java util logging logback 和 reload4j
  • 读java编程思想的一点感触

    学习一些java基础语法后 xff0c 能应付简单的日常工作 但是觉得还是得系统学习一下这门语言 xff0c 就选择了java编程思想 原书第4版 xff0c 机械工业出版社 xff0c 陈昊鹏译的这本 看懂的不是很多 xff0c 还是学到
  • Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: No outputs for

    错误 xff1a Unable to determine application id com android tools idea run ApkProvisionException No outputs for the main art
  • 完善二叉树的右指针

    对于一个二叉树 xff0c 每个结点有三个指针 xff0c 除了左右子节点指针外还有一个指向右边的结点的指针 现在给定一个二叉树 xff0c 每个结点的右指针为空 xff0c 让你把每一层的结点都连起来 xff08 默认是完全二叉树 xff
  • 什么是AOSP?

    AOSP全名为Android Open Source Project xff0c 中文为安卓开源项目 xff0c 开源即开放源代码 Android是一个基于Linux xff0c 由Google主导的开源系统 严格意义上来说 xff0c A
  • 什么是APT攻击

    什么是APT攻击 APT攻击即高级可持续威胁攻击 也称为定向威胁攻击 xff0c 指某组织对特定对象展开的持续有效的攻击活动 APT是黑客以窃取核心资料为目的 xff0c 针对客户所发动的网络攻击和侵袭行为 xff0c 是一种蓄谋已久的 恶
  • CEO、COO、CFO、CTO、CMO是什么意思

    一 什么是CEO COO CFO CTO xff1f CEO总裁 CFO财务总监 CTO技术总监 COO运营总监 CEO Chief Executive officer 首席执行官 可以理解为是企业领导人和职业经理人两种身份的合一 xff0
  • POC测试是什么

    POC测试 xff0c 即Proof of Concept 可以理解为 xff1a 根据客户需求进行测试 是业界流行的针对客户具体应用的验证性测试 xff0c 根据用户对采用系统提出的性能要求和扩展需求的指标 xff0c 在选用服务器上进行
  • 开发环境、测试环境、生产环境

    生产环境 是可以对外开放 xff0c 已通过测试验证 xff0c 对外提供服务的环境 开发环境 程序员做开发的环境 xff0c 该环境已经部署好需要的开发工具和服务 测试环境 一般是从生产环境复制过来的环境 xff0c 用于要发布的服务 业
  • Yml的基本配置(服务器端口、日志、JPA、Druid、环境激活、thymeleaf、resource)

    springboot配置文件很强大 也丰富 xff0c 约定优于配置 xff0c 只需做少量的配置 xff0c 其它采用默认的就行 application properties xff08 传统 xff09 xff0c applicatio
  • 使用BitLocker实现磁盘加密、u盘加密、移动硬盘加密

    一 使用系统自带的工具BitLocker实现 Bitlocker是属于win7版本以后有的系统功能 Windows BitLocker驱动器加密通过加密Windows操作系统卷上存储的所有数据可以更好地保护计算机中的数据 BitLocker
  • k8s的dashboard无法正常访问

    本场景为使用google浏览器访问vmware搭建的虚拟机 建议使用google浏览器的无痕模式 网页提示信息Client sent an HTTP request to an HTTPS server 原因 xff1a 因为直接使用ip
  • k8s删除pod失败,一直处于deleted的界面

    我们在删除pod的时候出现以下情况 xff1a span class token comment 删除pod span span class token punctuation span root 64 master1 yaml span
  • journalctl命令

    journalctl简介 journalctl命令是Systemd的 个命令 xff0c 是用来管理查看日志信息的 因为日志的信息多 xff0c 复杂 xff0c journalctl命令用参数的方式来帮助用户更快地定位日志 注释 xff1
  • 如何在微信小程序里使用Lottie动画库

    先看效果图 xff1a 前言 xff1a 微信小程序的lottie动画库是按照lottie web动画库改造而来 参考lottie web xff1a https github com airbnb lottie web xff0c 以及官