最近要做一个复杂嘅年度报告交互动画,年底惊喜夜又要做年度报告又要做,时间只有一晚黑。。
搵了好耐终于畀我搵到一個bodymovin同埋lottie-web可以用嘅。捻住記下先la~
Bodymovin 简介
Bodymovin是一个开源的JavaScript库,它用于将After Effects动画转换为可在Web上播放的HTML5动画。它使用Adobe After Effects的动画数据,将其转换为可在Web浏览器中播放的JSON文件。
使用Bodymovin的步骤:
在After Effects中创建动画,确保它们满足Bodymovin的要求:所有元素都必须使用2D变换,而不是3D变换,并且不能使用任何第三方插件。
在After Effects中安装Bodymovin插件,它可以从Github上下载。
将动画导出为JSON文件。
将JSON文件上传到您的网站,并使用Bodymovin JavaScript库在网页上播放动画。
在网页上定制动画,以获得最佳效果。
AE端:
1. 官网下载bodymovin后,安装并打开
github地址
提示:mac m1系统请通过ZXP Installer安装。
2. 左侧选择要导出json的图层,右侧选择导出json的文件夹。完成后点击”render”即可。
提示:若遇到写入不成功的问题,请检查是否开启脚本写入文件。
位置:After-Effect - 首选项 - 脚本和表达式
详细代码(js)
webpack(5)中,处理图片和json
1 |
|
webpack4用file-loader同埋url-loader处理,代码不写了。
入口文件,安装并引入bodymovin同埋json同埋图片
如果图片较多,可以像我一样处理,用webpack的require.context方法,一次性引入所有图片(es6的按需引入也行,看自己呗。)
require.context是webpack提供的一个函数,它可以接受三个参数:一个要搜索的文件夹目录,一个是否搜索子目录的布尔值,一个匹配文件的正则表达式。它可以返回一个函数,这个函数可以接受一个参数,这个参数是要引入的文件的相对路径,然后它就会返回这个文件的模块。require.context可以帮助我们实现按需引入模块的功能,从而减少代码体积。
1 | npm i bodymovin |
1 | import bodymovin from "bodymovin"; |
扩展:(svg矢量图形转换为