微信小程序通过lottie库实现json动画

这篇具有很好参考价值的文章主要介绍了微信小程序通过lottie库实现json动画。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 通过npm安装Lottie库(注意微信小程序使用lottie-miniprogram,vue项目使用 lottie-web)
npm install --save lottie-miniprogram
  1. 把ui提供的json文件动画改成js文件并通过module.exports导出文件

    lottie 小程序,微信小程序,微信小程序,json,小程序

  2. 在页面wxml文件创建一个canvas标签来存放动画(注意这里canvas需要包裹在view标签中并设置 style="width: 100%;height: 100%;)

<view style="width:750rpx;height:660rpx">
  <canvas id="lottie-demo" type="2d"  style="width: 100%;height: 100%;"></canvas>
</view>
  1. 在页面ts文件中使用动画

  2. json动画模糊问题处理(需要把像素比率计算进去,完美解决)文章来源地址https://www.toymoban.com/news/detail-516022.html

const width = res[0].width

    const height = res[0].height

    const canvas = res[0].node

    const ctx = canvas.getContext('2d')

    const dpr = wx.getSystemInfoSync().pixelRatio

    canvas.width = width * dpr

    canvas.height = height * dpr

    ctx.scale(dpr, dpr)


  1. lottie封装函数
import lottie from 'lottie-miniprogram'
/**
 * @function json动画方法
 * @param {*} id canvas的id选择器
 * @param {*} width canvas的宽
 * @param {*} height canvas的高
 * @param {*} context this指向的对象
 * @param {*} loop 是否循环播放
 * @param {*} autoplay 是否立即播放
 * @author 徐声
 */
export function jsonAnimation ({
  context,
  id,
  width,
  height,
  path,
  loop = true,
  autoplay = true
}) {
  wx.createSelectorQuery()
    .in(context)
    .select(id)
    .node((res) => {
      const canvas = res.node
      const lottieContext = canvas.getContext('2d')
      const dpr = wxp.getSystemInfoSync().pixelRatio
      canvas.width = width * dpr
      canvas.height = height * dpr
      lottieContext.scale(dpr, dpr)
      lottie.setup(canvas)
      // context.lottieAnimation =
      lottie.loadAnimation({
        loop: loop,
        autoplay: autoplay,
        animationData: path,
        rendererSettings: {
          context: lottieContext
        }
      })
    })
    .exec()
}

到了这里,关于微信小程序通过lottie库实现json动画的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画)

    本文探讨微信小程序 图片 相机 二维码 动画相关API(实现选择相册、拍照、录像、动画)功能,带有示例代码

    2024年02月04日
    浏览(56)
  • 前端实现微信小程序JSON数据导出Excel表

    最近做微信小程序相关项目需要将数据导出为excel形式,在网上查了许多资料来实现这个功能,以下是我使用的方法,特此记录一下,以便之后使用。 解决方法:使用sheetJS代码插件实现 github地址:https://github.com/SheetJS/sheetjs 下载地址:https://cdn.sheetjs.com/ 代码如下,具体使用

    2024年01月17日
    浏览(46)
  • 利用微信小程序新动画API之this.animate()实现3D旋转

    从微信小程序基础库 2.9.0 开始支持一种更友好的动画创建方式,用于代替旧的 wx.createAnimation 。它具有更好的性能和更可控的接口。 在页面或自定义组件中,当需要进行关键帧动画时,可以使用 this.animate 接口(官方API文档链接地址:https://developers.weixin.qq.com/miniprogram/dev/fr

    2023年04月08日
    浏览(62)
  • 通过微信小程序实现登录功能

    [ ](https://dev.csdn.net/activity?utm_source=sale_sourcesale_source=q4AnCOkys7) 在微信公众平台中注册小程序,并获取 AppID。 在小程序中创建登录页面,包括用户名、密码输入框和登录按钮。 将用户名和密码通过 HTTPS POST 请求发送到后端服务器。 后端服务器验证用户名和密码是否正确,如果

    2023年04月13日
    浏览(74)
  • 【微信小程序】通过绑定点击事件来实现点击交互

    在微信小程序中,可以通过绑定点击事件来实现点击交互。以下是点击事件的实现步骤: 在WXML文件中,找到需要绑定点击事件的元素,例如按钮、图片等。 在该元素上添加 bindtap 属性,并指定一个对应的事件处理函数,例如: 在对应的页面或组件的JS文件中,定义事件处理

    2024年02月14日
    浏览(61)
  • 微信小程序animation动画,微信小程序animation动画无限循环播放

    需求是酱紫的: 页面顶部的喇叭通知,内容不固定,宽度不固定,就是做走马灯(轮播)效果,从左到右的走马灯(轮播),每播放一遍暂停 1500ms ~ 2000ms 刚开始想的是 css 的 position: relative + animation,如果宽度固定还好说,宽度不固定,用百分比的话,想象很美好,现实很

    2024年02月13日
    浏览(59)
  • 微信小程序 通过百度API接口实现汉译英翻译

    目录 先看一下做出来的效果: 一、微信开发平台的网址(微信开发者工具的官方使用说明) 二、百度API(文本翻译的API) 三、进入正文,微信小程序的代码部分 基础 | 微信开放文档 (qq.com) https://developers.weixin.qq.com/miniprogram/dev/api/   文本翻译_机器翻译-百度AI开放平台 (bai

    2024年02月09日
    浏览(62)
  • Taro:微信小程序通过获取手机号实现一键登录

            本文介绍如果通过微信小程序的getPhoneNumber方法获取用户微信绑定的手机号并自动注册登录。 1、按钮类型 openType 指定 \\\"getPhoneNumber\\\"   2、@getphonenumber必须全部小写 code:手机号获取凭证:动态令牌。可通过动态令牌换取用户手机号。         后台根据前端传入

    2024年02月16日
    浏览(63)
  • 微信小程序 - 实现容器卡片翻转动画效果,类似考勤打卡签到时翻转效果(像翻牌抽奖类似的效果动画)详细示例源码教程,一键复制开箱即用!

    微信小程序项目中,实现了任意容器像卡片一样的翻转效果动画,类似钉钉打卡签到点击时的翻转动画! 示例源码的注释非常详细,保证一键复制后改改样式就能应用到你的项目中去了。

    2024年02月10日
    浏览(110)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包