lottie-前端实现AE动效

摘要:
在前端页面上为了实现动画效果,可以用CSS3自己实现,可以让UI小姐姐给你GIF动图,也可以直接animate.css等等吧,可以实现的方式有不少,但如果说偏差那肯定是会有的,在呈现上也会有点不太自然,今天介绍一个神器Lottie。)Lottie背景介绍Lottie是可应用于Android,iOS,Web和Windows的库,通过Bodymovin解析AE动画,并导出可在移动端和web端渲染动画的json文件。换言之,设计师用AE把动画效果做出来,再用Bodymovin导出相应地json文件给到前端,前端使用Lottie库就可以实现动画效果。

在前端页面上为了实现动画效果,可以用CSS3自己实现,可以让UI小姐姐给你GIF动图,也可以直接animate.css等等吧,可以实现的方式有不少,但如果说偏差那肯定是会有的,在呈现上也会有点不太自然,今天介绍一个神器Lottie。(刚接触到这个东西,那兴趣是真的十分大,真的是对前端很友好。)

Lottie背景介绍

Lottie是可应用于Android, iOS, Web和Windows的库,通过Bodymovin解析AE动画,并导出可在移动端和web端渲染动画的json文件。换言之,设计师用AE把动画效果做出来,再用Bodymovin导出相应地json文件给到前端,前端使用Lottie库就可以实现动画效果。

lottie-前端实现AE动效第1张

对于前端来说从UI小姐姐那里拿到的是这样一个文件,若动画里导入了外部图片,则会在images中存放JSON中引用的图片。

lottie-前端实现AE动效第2张

前端使用Lottie

1.静态URL

https://cdnjs.com/libraries/lottie-web

2.NPM

npm install lottie-web  

调用loadAnimation

lottie-前端实现AE动效第3张

3.vue-lottie(在vue中使用lottie)

    import lottie from '../lib/lottie';
    import * as favAnmData from '../../raw/fav.json';

    export default {
        props: {
            options: {
                type: Object,
                required: true
            },
            height: Number,
             Number,
        },

        data () {
            return {
                style: {
                     this.width ? `${this.width}px` : '100%',
                    height: this.height ? `${this.height}px` : '100%',
                    overflow: 'hidden',
                    margin: '0 auto'
                }
            }
        },

        mounted () {
            this.anim = lottie.loadAnimation({
                    container: this.$refs.lavContainer,
                    renderer: 'svg',
                    loop: this.options.loop !== false,
                    autoplay: this.options.autoplay !== false,
                    animationData: favAnmData,
                    assetsPath: this.options.assetsPath,
                    rendererSettings: this.options.rendererSettings
                }
            );
            this.$emit('animCreated', this.anim)
        }
    }

loadAnimation参数

lottie-前端实现AE动效第4张

Lottie动画监听

Lottie提供了用于监听动画执行情况的事件:

  • complete
  • loopComplete
  • enterFrame
  • segmentStart
  • config_ready(初始配置完成)
  • data_ready(所有动画数据加载完成)
  • DOMLoaded(元素已添加到DOM节点)
  • destroy

可使用addEventListener监听事件:

// 动画播放完成触发
anm.addEventListener('complete', anmLoaded);

// 当前循环播放完成触发 
anm.addEventListener('loopComplete', anmComplete);

// 播放一帧动画的时候触发 
anm.addEventListener('enterFrame', enterFrame);

可以控制动画播放速度和进度:

可使用anm.pause和anm.play暂停和播放动画,调用anm.stop则会停止动画播放并回到动画第一帧的画面。
使用anm.setSpeed(speed)可调节动画速度,而anm.goToAndStop(value, isFrame)和anm.goToAndPlay可控制播放特定帧数,也可结合anm.totalFrames控制进度百分比,比如可传anm.totalFrames - 1跳到最后一帧,这样的好处是可以把相关联的JSON文件合并,通过anm.goToAndPlay控制动画状态的切换。

anm.goToAndStop(anm.totalFrames - 1, 1);

图片路径处理

SON文件里assets设置了对图片的引用:

lottie-前端实现AE动效第5张

若想统一修改静态资源路径或者设置成绝对路径,可在调用loadAnimation时传入assetsPath参数:

lottie.loadAnimation({
  container: element,
  renderer: 'svg',
  path: 'data.json',
  assetsPath: 'URL'  // 静态资源绝对路径
});

这篇随笔主要借鉴了这个小姐姐的文章https://segmentfault.com/a/1190000018577416

写的是真的真的真的很好,内容覆盖很全。

lottie文档地址:https://juejin.cn/post/6844903661760413704

免责声明:文章转载自《lottie-前端实现AE动效》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Matconvet的学习笔记C#开源类库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用eggjs返回xml格式数据,前端解析xml

最近公司有个需求,需要从接口返回xml格式数据,再由前端解析后渲染。之前处理过类似的场景,接口是用java写的。本次想写个demo,用eggjs尝试返回xml格式接口,再由前端处理结果。 nodejs端 首先是eggjs,根据官方文档,先把应用跑起来。 接着需要安装依赖egg-view-ejs npm i egg-view-ejs -S 配置文件 /co...

中文前端UI框架Kit(十三)使用RequireJs托管你的类库和js代码

号外:kitjs官方讨论QQ群建立了,QQ群号88093625,欢迎大家加入,讨论前端相关话题 kit内置支持requireJs托管,可以使用requireJs加载和管理KitJs框架内的所有组件和类库 最近园子里有很多讨论requireJs(http://requirejs.org/)的兄弟,requireJs托管js代码的好处有 1.通过闭包提供了一个...

【WPF学习】第五十六章 基于帧的动画

  除基于属性的动画系统外,WPF提供了一种创建基于帧的动画的方法,这种方法只使用代码。需要做的全部工作是响应静态的CompositionTarge.Rendering事件,触发该事件是为了给每帧获取内容。这是一种非常低级的方法,除非使用标准的基于属性的动画模型不能满足需要(例如,构建简单的侧边滚动游戏、创建基于物理的动画式构建粒子效果模型(如火焰、雪花以...

OpenCASCADE动画功能2

OpenCASCADE动画功能2eryar@163.com OpenCASCADE是一个开发平台,主要提供三维曲面和实体建模、CAD数据交换及可视化等功能。OCCT最适用于开发三维建模CAD软件、加工制造或测量(CAM)软件及数值仿真软件。对于一些加工制造软件,需要简单的动画仿真功能。本文主要就来说说OCCT的动画功能。 OCCT从7.1.0版本引入了类A...

H5动效的常见制作方法

动效制作手法1;gif图片 优势:节省成本;制作效率高。 动效制作手法2:逐帧动画 动效制作手法3:css3; 动效制作手法4:svg; 缺点不支持低版本的浏览器ie8及以下 知识普及:SVG,可缩放矢量图形(Scalable Vector Graphics), 是被存成了 XML 格式的图像, 特征: 1,可被多种工具读取和修改(比如记事本) ,2,尺寸...

Android Activity 切换动画(非原创)

在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity增加了一个方法: public voidoverridePendingTransition(int enterAnim, int exitAnim) 其中:...