前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让我们一起来看看可爱的猫咪吧

让我们一起来看看可爱的猫咪吧

作者头像
宁在春
发布2022-10-31 15:34:30
1.8K0
发布2022-10-31 15:34:30
举报
文章被收录于专栏:关于Java学习@宁在春

我想喜欢小猫咪的人,一定非常可爱和温柔吧

前言

在这里插入图片描述
在这里插入图片描述

这个视频中的小猫咪贼可爱,然后下面的那给进度条是只小猫咪走来走去的。

然后我就想可以拿进度条做点事情,一开始想搜一搜借鉴一下,但是根本没有这种高度自定义的。唉

经历

互联网当然是无比强大的,经过千辛万苦,还是有找到类似,第一眼我就爱上了那种。

new-good-2
new-good-2

图来自于:会编程的银猪

我就想着怎么能够把这个小狗换成小猫咪来操作。顺藤摸瓜就找到今天的主角:lottie-web 开源动画库


进入正文…

Lottie 动画库

官方文档

它也是机缘巧合下找到的。

介绍:

Lottie 是一个适用于 Android、iOS、Web 和 Windows 的库,它解析使用Bodymovin导出为 json 的Adobe After Effects动画,并在移动设备和 Web 上本地呈现它们!

官方logo动图

在这里插入图片描述
在这里插入图片描述

上面的动画是在 After Effects 中创建的,可以通过一个简单的 json 文件在所有平台上本地渲染。

(它用起来的成本比平常的动画库要稍微高亿点点,🐕)

简单案例

这边贴出几个官方给出的小猫咪的案例:

示例一

代码语言:javascript
复制
<!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

效果图:

QQ录屏20211120103037
QQ录屏20211120103037

示例二

代码语言:javascript
复制
<!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

效果图:

QQ录屏20211120103139
QQ录屏20211120103139

基本用法

官方有给出一个基本教程,不过是在youtube上,如果会一点点,用这个做动画,真的很棒。

视频教程

入门

Bodymovin 可以在网络上呈现 Lottie JSON 文件。

首先,获取 bodymovin 播放器 javascript 库。它静态托管在https://cdnjs.com/libraries/bodymovin或者您可以通过单击Get Playerbodymovin 插件直接获取 javascript 。

代码语言: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 上使用。

然后播放动画就这么简单:

代码语言:javascript
复制
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() 来启动动画。它将一个对象作为一个唯一的参数:

  • animationData:一个带有导出动画数据的对象。注意如果您的动画包含转发器,并且您计划使用同一个动画多次调用 loadAnimation,请在传递对象之前进行深度克隆
  • path:动画对象的相对路径。(animationData 和 path 是互斥的)
  • loop:真/假/数字
  • autoplay:true / false 它会在准备好后立即开始播放
  • name:动画名称以供将来参考
  • renderer: ‘svg’ / ‘canvas’ / ‘html’ 设置渲染器
  • container:在其上呈现动画的 dom 元素

它返回您可以通过播放、暂停、设置速度等控制的动画实例。

入门就是这么简单,但是最难的地方就是如何弄那个js和json文件,在它的教程中它的json文件称之为Lottie JSON 文件。

好像也只能通过AE进行导出,其他方式,暂且没有找到。xdm,我只能介绍到这里拉。

后语

感觉这个动画库真的很强大的,设计师第一次可以创建和发布精美的动画,而无需工程师费力地手工重新创建。

在这一点上确实蛮省事的感觉。

我坦白,自从进入"代码吸猫"征文活动群来,我做的最多的不是想着写啥,而是收刮表情包,群里的掘友猫咪是真的太好看拉。

image-20211120105526853
image-20211120105526853

还有分享一下早上看到的两个超可爱的猫咪视频,真的爱死拉

1、”小猫咪不可以打架哦“

2、“它长得好有礼貌啊!"

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 经历
  • Lottie 动画库
    • 介绍:
      • 简单案例
        • 基本用法
          • 入门
      • 后语
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档