html如何加载ae做好的,AE转JS动画,lottie.js和bodymovin的简易使用心得

本文介绍了如何使用lottie.js库将Adobe After Effects(AE)制作的动画转换为JavaScript,详细阐述了从设计师制作静态设计稿到前端开发集成动画的完整流程。包括AE导出、前端接收文件、设置样式、引入库文件、提取动画数据以及各种控制动画的方法,如播放、暂停、停止等。

PS:描述不清或者描述错误请见谅...

AE动画转换JS动画使用了lottie.js库

制作流程:

1、设计师使用PS或者AI制作静态设计稿;

2、设计师对设计稿图层进行分类

3、导入AE制作

4、AE导出文件,对应使用的AE插件为bodymovin

5、前端开发 接收设计师发来的文件,提取相关代码,写入需要使用的页面。

前端的工作:

1、设计师发来的文件里,通常包含data.js和demo.html,如果bodymovin导出时没有勾选图片转换为base64的话会多出一个images文件夹存放图片文件,注意,在新版本的bodymovin 里导出的是data.json和demo.html,前端工作量会小一点。

2、样式方面:

#lottie{

width: 100px;

height: 100px;

display:block;

overflow: hidden;

transform: translate3d(0,0,0);

}

需要为动画设置一个容器,定义宽高,transform为强制开启GPU渲染,容器设置ID

3、引入库文件

4、提取动画数据

(1)data.js 和 demo.html 存在的情况下:

let animationData = {......};

let params = {

container: document.getElementById("lottie"),

renderer: "canvas",

loop: true,

autoplay: true,

animationData: animationData

}

let anim = lottie.loadAnimation(params);

(2)data.json 和 demo.html 存在的情况下:

let animationData = {......};

let params = {

container: document.getElementById("lottie"),

renderer: "canvas",

loop: true,

autoplay: true,

path: "data.json"

}

let anim = lottie.loadAnimation(params);

data.json存在时不需要提取animationData !

container:为预留的动画容器;

renderer:为动画模式,html为纯dom结构动画,canvas为画板动画,svg为svg动画;

loop:为循环

autoplay:为自动播放

animationData:为动画数据,该内容与data.js内容一致,所以data.js 可以不使用;

path:为动画数据,与animationData不可同时使用,数值为data.json的路径

常用方法:

输出动画时长秒:

console.log("时长(s):" + anim.getDuration(false));

输出动画时长帧:

console.log("时长(帧):" + anim.getDuration(true));

暂停:

anim.pause();

播放:

anim.play();

停止:

anim.stop();

销毁动画实例:

anim.destroy();

正/反向播放:

anim.setDirection(parm);

parm: 1为正向,-1为反向

播放速度:

anim.setSpeed(num);

例子,用同一个按钮切换播放/停止的方法:

document.getElementById("btn").onclick = function(){

if(anim){

anim.destroy();

anim = undefined;

}

else{

anim = lottie.loadAnimation(params);

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值