首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用强大的 AirBnb Lottie 让你的 React APP 炫酷起来

Lottie for React Lottie提供了一种完全不同的方式来创建令人印象深刻的动画,它使用流行的Adobe After Effects程序生成的动画,这些动画以JSON文件的形式导入和导出。...当我们准备好使用它时,我们可以通过选择Lottie JSON下载动画的JSON文件: 不管你是如何创建React项目的,你都可以把它放在任何你喜欢的文件夹里。...loadAnimation来运行我们的动画,通过给它传递一个对象。在这个对象上,我们需要提供的第一件事是容器,也就是我们想要在其中运行动画的DOM节点。...动画的自动播放设置默认为true,这意味着动画会在加载时自动播放。如果你想有条件地运行动画,你可以通过使用一个状态变量将它设置为true或false(如果你想只在动画可见时播放动画)。.../lottie_light"; 希望这篇文章能够帮助您启动并运行Lottie,当您在web应用程序中寻找一些特别的东西时,可以将Lottie作为一个特性添加到您的React项目中。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从设计师和开发的角度使用 lottie

    Effects Text image.png *设计过程中的优化建议和注意事项 General tips & guidelines 尽量保持简单小巧 在相同的图层上复制相同的关键帧会增加额外的代码,...只有在必要时才使用路径关键帧动画。...,参数1为数组,两个元素为开始帧和结束帧;参数2为,是否立即播放片段,还是等之前的动画播放完成 destroy 无 销毁 事件 onComplete onLoopComplete onEnterFrame...api 支持没有 airbnb 官方完整,投入生产环境时还需要严格测试一下 vue-weex demo 使用@ali/rax-lottie 的 rax demo 如下 小结 在我看来,追求更精细完美的动画体验一直是设计师和前端开发的使命...lottie 的出现可以替代传统的 gif,并且提供的 api 可以更好的控制动画。lottie 可能不适合用于过于复杂的大场景动画,但是局部的小动画,再适合不过了。

    3.3K21

    【Flutter 专题】134 图解动画小插曲之 SVGA 动画

    SVGAAnimationController 控制器的 SVGASimpleImage;根据文件类型,通过不同参数进行展示,默认动画效果为重复播放; class SVGASimpleImage extends...State createState() => _SVGASimpleImageState(); } 简单分析源码可得,SVGASimpleImage 根据传递的不同动画路径进行不同方式的展示...; reset 动画重置; forward 动画播放,和尚建议若动画从头开始播放先调用 reset 使动画重置,防止其他操作影响动画起始位置; stop 动画停止,与 Lottie 动画不同,SVGAAnimationController...,这个思路跟 GIF 很像,但是通过配置使得动画过程中图片都可以得到复用; 而 Lottie 动画是逐层绘制,将所有的动画拆成多个层级,每个层级 layer 都有一个动画配置,播放时解析多 0...个 layer 的配置,并给每个 layer 做相应的动画; 两种动画模式都是很成熟且应用范围很广的动画,和尚因未找到完全相同的动画元素,未能进行准确的数据分析,但查阅资料两者性能基本持平,具体选用哪种根据实际情况而定

    1.4K40

    复杂帧动画之移动端video采坑实现

    在企鹅辅导品牌页中,我们需要实现一个动画如下: 页面滚动到动画区域,播放动画, 对应动画部分如下: 帧动画当前的实现有以下几种方式: GIF 动画 大家比较熟悉的图片格式 lottie(http:...//airbnb.io/lottie/) Airbnb 开源项目,通过解析 AE 动画为 json 数据,支持跨平台的动画效果解决方案;lottie 在辅导中已经有实际应用,使用过的同学都表示对其实现效果和开发速度表示称赞和推荐...实现,右图为我我们的目标实现效果 可以看到实现还是存在着差异,颜色、数字倾斜度、虚线的透视都没有达到预期,于是放弃lottie 的使用,但这并不否定 lottie 在实现其它动画的优秀效果 APNG...( err => { // auto play fail }) 当 catch 到 error 时,只能启用兼容方案,设计小哥哥给了我几张帧图片,让我渐隐渐现实现图片播放。...video 的自动播放,考虑一些浏览器限制必须通过用户交互才能使用,如果视屏是在第一屏则有点难度,还是需要用户通过点击才能播放,如果不是第一屏则可通过 touch 事件来触发,毕竟用户下拉滚动还是会触发

    2.3K10

    React: Lottie 动画初体验和优化策略

    阅读大约需要 12-15 分钟, 主要简单介绍 lottie 动画概况和一些优化方案, 主要的优化方案针对React h5 的优化方案 1、什么是 LOTTIE lottie 是 Aribnb...3、为什么选择 LOTTIE 动画,比较同样类型和选择 同样类型的复杂动画实现的方案现在有如下几个 png 序列帧: 优点:兼容性好,工程师可控,操作性强 缺点:它需要大量图片素材支持,动画播放时占用的内存较多...缺点:部分手机掉帧非常严重,体验不流畅,严重影响用户体验 lottie 动画就解决了这一问题:Lottie 只需要解析导出的 JSON 文件及所需要的图片,就能在各个平台上实现相同的动画效果,它实现成本低...AnimationItem的容器,把我们的节点element和 animationData json数据进行初始化 2、 setData,setParams 给 animationData 设置基础值...动画原理 [4] lottie 动画 [5] 生成原理/性能分析 [6] 虚拟 dom 原理 [7] 计算 web 页面性能 邀请 我的博客也将同步至腾讯云+社区:有兴趣的同学可以点击白嫖腾讯云代金券(

    4K40

    说lottie谁是lottie?

    Gif 动画存在一些问题,例如:文件较大、无法缩放匹配不同屏幕大小和密度、易出现锯齿、无法控制动画等。...其他常用的动画方案有: Png 序列帧:文件大,可能会在不同屏幕分辨率下失真 SVG 动画:实现成本高,易出现动画还原度低的情况 目前,项目需要经过调研,Lottie 动画是一种具有高可行性的方案。...lottie实现的动画效果: jcode lottie-web lottie-web 支持多种特性,提供复杂的动画控制和监听功能。...(循环播放/非循环播放)结束时触发 enterFrame 每进入一帧就会触发,播放时每一帧都会触发一次,stop 方法也会触发 segmentStart 每进入一帧就会触发,播放时每一帧都会触发一次,stop...方法也会触发 DOMLoaded 动画相关的 dom 已经被添加到 html 后触发 destroy 将在动画删除时触发 Lottie 动画性能 对比 Lottie 和 Gif 动画,数据显示

    40320

    Lottie-页面动画100%硬核还原

    它就是今天的主角:Lottie Lottie简介 Lottie 是Airbnb开源的一个 面向iOS、Android、React Native 的动画库,能分析 AE 导出的动画(需要用bodymovin...下面是Lottie提供的官方效果图。类似下面这种一段动画的播放,非常适合使用Lottie来做。 Lottie流程 我们先来看下整个流程简图。...设计师用AE把动画效果做出来,再用Bodymovin导出相应的json文件给到前端,前端使用Lottie库就可以实现动画效果。功能简单且强大。...可传递需要循环的特定次数 autoplay:true / false 它会在准备好后立即开始播放 name:动画名称以供将来参考 renderer: 'svg' / 'canvas' / 'html'...('complete', anmLoaded); // 当前循环播放完成触发 anm.addEventListener('loopComplete', anmComplete); // 播放一帧动画的时候触发

    1.1K40

    大杀器Bodymovin和Lottie:把AE动画转换成HTML5AndroidiOS原生动画

    Airbnb出了移动端的动画库Lottie,可以和一个名叫Bodymovin的AE插件结合起来,把在AE上做好的动画导出为json文件,然后以Android/iOS原生动画的形式在移动设备上渲染播放。...巧的是,来自阿里的大牛渚薰做主题演讲时,也提到了Lottie和Bodymovin。渚薰的主题是“H5互动的正确打开方式”,演讲十分精彩。还等什么,听完大会我便操练了起来。 ?...(上图为FDCon2017上渚薰讲到Lottie时的PPT页面) 经过了一番试验后,我大概摸清了Bodymovin的使用方式。...Bodymovin还为生成出的json文件提供了预览功能,点击插件界面上的“Preview”按钮,点击“Browse”载入刚刚生成的json文件,就会看到,动画被原汁原味地导出了: ? 8....接下来我们新建一个网页来播放这段动画。

    5.8K22

    AirBnb 开源动画引擎 Lottie:采用 Core Animation 提高性能

    这意味着动画在播放时将消耗 5–20% 以上的 CPU,从而减少了用于应用程序其余部分的可用 CPU 周期。...根据 Stephens 的说法,这使得 Lottie 在更复杂的情况下无法维持所需的帧速并且开始丢弃帧会变得相对常见。此外,当主线程忙于一些昂贵的任务时,动画可能会出现一些抖动。...例如,Airbnb 应用程序在首次启动时显示 Lottie 动画。我们在这里进行了一项实验,发现切换到新的渲染引擎可以缩短应用程序的总启动时间,同时还可以提高启动动画的帧速和用户体验。...Sergio 已经在一系列不同的项目和公司担任软件工程师超过 15 年,其中包括西门子、惠普和小型创业公司等不同的工作环境。在过去的几年里,他一直专注于移动平台和相关技术的开发。...点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

    2K20

    lottie系列文章(二):lottie最佳实践

    是否自动播放 path: animateJsonPath, // 动画json文件路径 }); lottie-web常用方法 lottie-web提供了很多的控制动画播放的方法,下面是一些常用的方法...在unmount的时候,需要调用该方法 lottie-web常用的事件 我们在lottie-web中可能也需要监听一些事件,比如加载完动画json文件时的data_ready事件。...* data_ready: 动画json文件加载完毕触发 * DOMLoaded: 动画相关的dom已经被添加到html后触发 * destroy: 将在动画删除时触发 lottie-web部分高阶用法...在制作AE动画时,将图层命名为#svgId格式,前端加载该动画后,相应的图层的id会被设置为svgId,可以通过dom方法获取该元素并做相应的操作; 在制作AE动画时,将图层命名为.svgClass格式...,前端加载该动画后,相应的图层的class会被设置为svgClass,可以通过dom方法获取这些元素并做相应的操作; 动画json文件制作及导出规范 使用该方案制作动画时,有些动画效果lottie-web

    5.5K31

    面向前端的 Lottie & AE 动画手把手入门教学

    其实对于普通的动效和简单动画, 使用原生代码实现已经足够, Lottie 是为了复杂动画而生的, 下面来看几个 Lottie 实现的几个动画例子: ?...要使用 Lottie, 需要在借助 Bodymovin 插件将动画工程文件从 AE 中导出成 JSON。Lottie 分别为每个平台实现了一套 Player, 只需载入JSON动画文件就可播放。...值得一提的是, Lottie 在 Web 上是借助 Canvas 或者 SVG 来渲染动画的, 动画的关键帧在导出时已经被计算好了, 除了解析JSON之外基本没有性能损耗, 因此效率非常高! 二....按住ctrl同时点击选择我们的动画路径, 点击右下角的转换为贝塞尔曲线按钮。 ? 但是这时什么都不会发生。。。.../index.html, 打开浏览器, 将会看到我们的动画, 是不是非常酷~ 除了能够播放和暂停, Lottie 还为我们提供了更加精细的动画控制方法和事件钩子, 有兴趣的小伙伴参考: GitHub

    3K50

    复杂帧动画之移动端video采坑实现

    在企鹅辅导品牌页中,我们需要实现一个动画如下: 页面滚动到动画区域,播放动画, 对应动画部分如下: 帧动画当前的实现有以下几种方式: GIF 动画 大家比较熟悉的图片格式 lottie Airbnb...开源项目,通过解析 AE 动画为 json 数据,支持跨平台的动画效果解决方案;lottie 在辅导中已经有实际应用,使用过的同学都表示对其实现效果和开发速度表示称赞和推荐。...可以看到实现还是存在着差异,颜色、数字倾斜度、虚线的透视都没有达到预期,于是放弃lottie 的使用,但这并不否定 lottie 在实现其它动画的优秀效果 APNG 在对设计师给到的分段的动画帧图片压缩之后...这在不同 PC 设备中存在差异,例如 MAC 与 windows , 在移动端暂时还没发现,但是可以发现视频在移动端展示与 PC 上展示的色彩差异 ?...video 的自动播放,考虑一些浏览器限制必须通过用户交互才能使用,如果视屏是在第一屏则有点难度,还是需要用户通过点击才能播放,如果不是第一屏则可通过 touch 事件来触发,毕竟用户下拉滚动还是会触发

    2.4K10

    Android Lottie 中秋月饼变明月动画特效

    和尚在 Android 端进行动画处理时主要用的是 Android 自带的三种动画形式,今天和尚简单尝试通过 Airbnb Lottie 展示一个中秋月饼变明月的小动画; Lottie Lottie...循环播放 & 动画监听 前两步设置完 setAnimation() 之后,播放完成就停止动画,若需要重复播放,可以通过 loop(true) 方式进行循环播放,但该方法在新的 API 中不建议使用...,可以通过 setRepeatCount() 设置播放次数,或通过动画监听在动画结束时再次播放等; mView2.loop(true); mView1.setRepeatCount(5);...;其中的 layers 也为图层信息;layers 中的 ks 为动画的主要信息; 和尚理解 Lottie 整体是利用属性动画控制进度,通过进度变更更改 layers 中触发 LottieAnimationView...重绘各个资源信息; ---- 和尚的中秋月饼变明月的 Lottie 动画尝试到此为止,主要是熟悉了一下 Android Lottie 的应用;如有错误,请多多指导!

    1.2K10

    Lottie在手,动画我有:iosAndroidWeb三端复杂帧动画解决方案

    Lottie动画简介 Lottie是一个用于Web和iOS(Android)的移动库,用于解析使用Bodymovin导出为json的Adobe After Effects动画,并在移动设备上呈现它们。...缺点(web端)如下所示: 自动播放问题:很多平台,如微信,许多安卓浏览器,是禁止自动播放的,那么这时,你的“动画”就变成了一张“静态图”了 许多手机浏览器,如oppo和华为,是有“播放置顶”...,和CSS那种设计给UI然后研发二次实现不同,Lottie完全由设计师实现,分工明确 接上面的第3点:维护成本低,因为所需文件资源可以从网络引入。...到 https://github.com/airbnb/lottie-web 下载包项目,然后进入/build/extension下面下,有个Bodymovin.zxp,这个是一个安装包,点击它,就会给...(最后导出的时候要点击绿色的render按钮才能导出,不要点那个player按钮),如果能把render这个文案改成export(导出),语意上就更好理解一些了 lottie-web的使用需要手动处理跨域问题

    3.6K20

    Lottie动画秘籍--QQ超清表情大揭秘

    Part 2 他山之石:Lottie格式 x 表情动画 想要同时拥有流畅动画资源和手机播放性能,就必须颠覆基于位图的APNG和GIF的表情格式。此时我们发现Lottie动画十分符合我们的需求。...另外通过相同锚点的位移来生成的动画可以产生更流畅的过渡,不会像位图播放那样出现跳变。...| 考虑动作惯性:物体在两种动作中切换时不会立即产生变化,基于惯性应该存在上一个动作的跟随动作。这会让动画更加接近现实。...| 动画要首尾相连:QQ表情是不断循环播放,所以动画的首尾循环的动画会更加自然流畅。 | 制作Lottie动画:灵活穿插运用上面的设计手法,可给动画带来灵动的感觉。...·功能:制作时只使用下图中Lottie支持的AE功能 ·表达式:Lottie对表达式的支持并不全面,经常失效。

    1.1K40

    Lottie动画简介

    各平台实现业务无关的动画基础库,业务层只需要要把配置数据输入基础库,接下来由配置数据控制动画效果、时序及其组合,这样就能把N的业务层工作量缩减到0.n 三.目标定位 Lottie就是这样的一种方案,想要缩减多端实现动画的业务工作量...前端工程师,工程师调用对应平台的Lottie Player加载动画资源,并控制动画播放/暂停等 AE插件部分负责把AE的动画定义转换成Lottie动画定义,并输出JSON文件,难点在于支持转换更多的AE...特性,以免设计师用起来束手束脚 播放器部分负责解析Lottie动画定义,加载相关资源并利用平台支持的技术实现动画效果,比如Web环境下默认通过SVG动画来实现,可选Canvas绘制和CSS动画实现 关键在于...: 通用的动画定义 各平台下支持该动画定义的播放器 类似于Java的跨平台思路:平台无关的class文件 + 平台相关的JVM实现 五.lottie-web airbnb/lottie-web是Web环境的...lottie_light.min.js 其中,lottie_light.js(轻量版)仅支持SVG模式,且不支持expressions 六.总结 Rax的跨容器运行、Lottie的跨端动画……

    1.9K40

    UWP 创建动画的极简方式 — LottieUWP

    LottieUWP 概述 Lottie 是 Airbnb 研发团队研发并开源的一套创建和播放动画的方案,可以非常方面的在全平台实现高质量的动画,支持 Android, iOS, Web, UWP。...设计师在 AE (After Effects) 中设计动画,通过 AE 中的 BodyMovin 插件导出为一个 JSON 文件,Lottie SDK 可以直接读取这个 JSON 文件,并通过简单代码控制播放动画...Lottie 官方地址:https://airbnb.design/lottie/,来看几个 Lottie 官方的动画示例: ?...: 我们去掉 LottieAnimationView 的自动播放,改为使用一个 Slider 来控制动画播放进度,动画进度的取值范围是 [0.0, 1.0] 。...除此之外,还可以针对 LottieAnimationView 的 AnimatorUpdate event 进行监听和处理,比如在动画更新时,显示当前进度,或更新播放进度条的进度值。

    1.5K70

    Lottie内存泄漏问题的定位与分析

    【一、前言Lottie简介与使用】 1、Lottie简介 Lottie是Airbnb开源的跨平台动画库,支持iOS、Android、React Native 和 Web 等平台。...3、Lottie方案的优点 (1). 动画由设计使用专业的动画制作工具Adobe After Effects来实现,使动画实现更加方便,动画效果也更好,100% 还原。 (2)....使用lottie方案,json文件大小会比gif文件小很多,性能也会更好。 (3). 简单的实现、控制动画的播放,开发效率大大提高。 (4). 可动态配置下发,实时替换动画效果。...加载动画是异步的,加载完成才会进入播放状态。如果compositionLayer == null 的时候,会加入到task里,没开始播放。 ? 播放开始了running= true; ?...onDetachedFromWindow停止动画 detach 处理时,先判断是不是播放状态,如果是播放状态running == true,才会去 cancel。

    7.1K30

    lottie系列文章(一):lottie介绍

    类似下面这种一段动画的播放,非常适合使用lottie来做。 ? 但是,给一个课程卡片本身添加动画(如:从右下角到移动到页面中,并逐渐放大的过渡效果),并不适合使用lottie。...lottie优点 Lottie方法方案是由设计师出动画,导出为json,给前端播放。...play: 播放动画 stop: 停止播放动画 pause: 暂停动画 goToAndStop: 跳到某一帧动画,并停止 setDirection: 设置播放方向 setSpeed: 设置播放速度 才外...,lottie-web也提供了一系列的事件,例如: onComplete: 动画播放完成触发 onLoopComplete: 当前循环播放完成触发 onEnterFrame: 播放一帧动画的时候触发 onSegmentStart...: 开始播放一个动画片段的时候触发 总体而言,lottie-web目前提供了丰富的方法和事件,基本可以满足对动画进行控制的需求。

    4.6K32
    领券