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

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

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

话不多比,直接开始!

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

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

npm install --save lottie-miniprogram

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

npm init

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

lottie-miniprogram,微信小程序,小程序

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

lottie-miniprogram,微信小程序,小程序

第四步:使用:

        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()
}

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

结束下班!!!!文章来源地址https://www.toymoban.com/news/detail-842703.html

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

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

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

相关文章

  • 微信小程序使用webview内嵌h5页面 wx.miniProgram.getEnv失效问题

    背景 最近接到一个h5需求,和普通的h5不一样,这个h5页面是嵌入到小程序中使用的,需求简单来说就是展示一个跳转按钮,判断如果是小程序环境下就进行跳转到其他小程序页面。 实现思路 核心逻辑其实就是判断小程序环境这一块,我们可以直接使用wxsdk来进行判断小程序

    2024年02月09日
    浏览(43)
  • 微信小程序的全局状态管理 — mobx-miniprogram

    在小程序中,常常有些数据需要在几个页面或组件中共享。使用 MobX 来管理小程序的跨页面数据,  其实类似于vuex的store。 小程序的 MobX 绑定辅助库。 此 behavior 依赖开发者工具的 npm 构建。具体详情可查阅 官方 npm 文档 。 可配合 MobX 的小程序构建版 npm 模块 mobx-miniprogram 使

    2024年02月09日
    浏览(36)
  • Jenkins +miniprogram-ci 构建 发布、预览微信小程序

    要实现这样的效果,需要下面3步:  1.下载 node 依赖包 miniprogram-ci,编写预览和上传功能  2. 登录微信公众平台, 下载项目的privateKey+添加代码上传IP白名单  3. 安装配置 Jenkins Step1 下载 node 依赖包 miniprogram-ci,编写预览和上传功能, 在微信小程序项目下创建package.json,wxC

    2024年02月04日
    浏览(38)
  • 微信小程序:全局状态管理mobx-miniprogram(类似store)

            需求是,每个播放视频的地方都有控制是否静音的按钮,点某一个静音则全局静音。         问题 :由于我的每个小卡片都是一个组件,本质是每个页面引几次同一个组件,刚开始用的setData,但是这样每个卡片中的数据都是经过深拷贝而独立的,所以点击某个按钮

    2024年02月11日
    浏览(36)
  • 微信小程序WeUI项目weui-miniprogram如何运行起来?

    微信小程序WeUI项目weui-miniprogram如何运行起来? 解决方法: 1、下载 https://github.com/wechat-miniprogram/weui-miniprogram 2、在项目根目录weui-miniprogram-master执行以下命令安装依赖: npm install 3、继续执行编译命令: npm run dev 生成miniprogram_dist目录如何使用可参考: 微信小程序WeUI项目weui-m

    2024年01月20日
    浏览(40)
  • Lottie--前端动画效果--UI输出json格式--lottie动画在JavaScript中使用

    Lottie一个适用于Web、Android、iOS、React Native和Window的移动库,它可以使用Bodymovin解析以json格式导出的Adobe After Effects动画,并再移动设备上进行本地渲染。 1.需要引入JavaScript文件,我使用的是cdn中的链接。这里直接上链接,按需取用。点这里 2.json格式的文件 我不是UI啊,我也

    2023年04月09日
    浏览(39)
  • 微信小程序 构建npm报错 没有生成miniprogram_npm目录

    拉取已有仓库,在目录下执行npm install,再在微信开发者工具里点构建npm,报错说找不到/miniprogram_npm 基础库2.27.1 一、先在 project.config.json 中检查配置 packageJsonPath 是用来寻找 package.json miniprogramNpmDistDir 配置 miniprogram_npm 生成目录 miniprogram_npm 是小程序使用的npm包目录,与 nod

    2024年02月11日
    浏览(48)
  • uniapp微信小程序封装网络请求 @escook/request-miniprogram

    官网地址:https://www.npmjs.com/package/@escook/request-miniprogram 1、下载依赖 2、引入 把下面代码放到 main.js 3、发起请求 4、请求成功 可以看到请求成功了,并执行了登入成功的逻辑。 每次发起请求后,都要自己写if语句判断请求是否成功,非常麻烦。我们可以修改一下源码解决这个

    2024年02月10日
    浏览(29)
  • 微信小程序中miniprogram_npm文件夹怎么生成的(详解)

    在小程序种引入vant组件,并没有找到目录中有 miniprogram_npm 文件夹,导致vant没有引入成功, vant引入一半, 尝试, 先构建npm,再继续引入vant 果然构建npm后, miniprogram_npm 文件夹就生成了,vant也引入成功了 在小程序项目中, miniprogram_npm目录 是通过使用 npm install 命令来生成

    2024年04月11日
    浏览(30)
  • Android 动画 Lottie 如何使用

    一、简介 Lottie 是Airbnb开源的一个面向 iOS、Android、React Native 的动画库,能分析 Adobe After Effects 导出的动画,并且能让原生 App 像使用静态素材一样使用这些动画,完美实现动画效果。 1.让设计师使用Adobe 的 After Effects(简称 AE)工具(美工一般都会这个)制作这个动画。 2.在AE中安

    2024年04月26日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包