我想喜欢小猫咪的人,一定非常可爱和温柔吧
这个视频中的小猫咪贼可爱,然后下面的那给进度条是只小猫咪走来走去的。
然后我就想可以拿进度条做点事情,一开始想搜一搜借鉴一下,但是根本没有这种高度自定义的。唉
互联网当然是无比强大的,经过千辛万苦,还是有找到类似,第一眼我就爱上了那种。
图来自于:会编程的银猪
我就想着怎么能够把这个小狗换成小猫咪来操作。顺藤摸瓜就找到今天的主角:lottie-web
开源动画库
进入正文…
它也是机缘巧合下找到的。
Lottie 是一个适用于 Android、iOS、Web 和 Windows 的库,它解析使用Bodymovin导出为 json 的Adobe After Effects动画,并在移动设备和 Web 上本地呈现它们!
官方logo动图
上面的动画是在 After Effects 中创建的,可以通过一个简单的 json 文件在所有平台上本地渲染。
(它用起来的成本比平常的动画库要稍微高亿点点,🐕)
这边贴出几个官方给出的小猫咪的案例:
示例一:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
html {
margin: 0;
padding: 0;
background-color: black;
text-align: center;
}
</style>
</head>
<body>
<div
id="svgContainer"
style="
width: 400px;
height: 400px;
background-color: #000;
display: inline-block;
"
></div>
</body>
</html>
<script src="https://labs.nearpod.com/bodymovin/build/player/bodymovin.js"></script>
<script src="https://labs.nearpod.com/bodymovin/demo/gatin/anim/data.js"></script>
<script>
var svgContainer = document.getElementById("svgContainer");
bodymovin.loadAnimation({
wrapper: svgContainer,
animType: "svg",
loop: true,
animationData: JSON.parse(animationData),
});
</script>
在线代码:codepen
效果图:
示例二:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html{
margin: 0;
padding: 0;
background-color: black;
width: 100%;
height: 100%;
overflow: hidden;
}
body{
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div id="svgContainer" style="width:100%;height:100%;background-color:#000;display:inline-block"></div>
</body>
</html>
<script src="https://labs.nearpod.com/bodymovin/demo/catrim/bodymovin.js"></script>
<script src="https://labs.nearpod.com/bodymovin/demo/catrim/data.js"></script>
<script>
var svgContainer = document.getElementById('svgContainer');
bodymovin.loadAnimation({
wrapper: svgContainer,
animType: 'svg',
loop: true,
// 此处的 animationData 就是 引入的 data.js 中定义的变量
animationData: JSON.parse(animationData)
});
</script>
在线示例:codepen
效果图:
官方有给出一个基本教程,不过是在youtube上,如果会一点点,用这个做动画,真的很棒。
Bodymovin 可以在网络上呈现 Lottie JSON 文件。
首先,获取 bodymovin 播放器 javascript 库。它静态托管在https://cdnjs.com/libraries/bodymovin或者您可以通过单击Get Player
bodymovin 插件直接获取 javascript 。
<script src="js/bodymovin.js" type="text/javascript"></script>
<!-- OR -->
<script src="https://cdnjs.com/libraries/bodymovin" type="text/javascript"></script>
Bodymovin 也可以在 npm 和 bower 上使用。
然后播放动画就这么简单:
var animation = bodymovin.loadAnimation({
container: document.getElementById('lottie'), // Required
path: 'data.json', // Required
renderer: 'svg/canvas/html', // Required
loop: true, // Optional
autoplay: true, // Optional
name: "Hello World", // Name for future reference. Optional.
})
您可以调用 lottie.loadAnimation() 来启动动画。它将一个对象作为一个唯一的参数:
它返回您可以通过播放、暂停、设置速度等控制的动画实例。
入门就是这么简单,但是最难的地方就是如何弄那个js和json文件,在它的教程中它的json文件称之为Lottie JSON
文件。
好像也只能通过AE进行导出
,其他方式,暂且没有找到。xdm,我只能介绍到这里拉。
感觉这个动画库真的很强大的,设计师第一次可以创建和发布精美的动画,而无需工程师费力地手工重新创建。
在这一点上确实蛮省事的感觉。
我坦白,自从进入"代码吸猫"征文活动群来,我做的最多的不是想着写啥,而是收刮表情包,群里的掘友猫咪是真的太好看拉。
还有分享一下早上看到的两个超可爱的猫咪视频,真的爱死拉