透明loading_四步搞定小菊花 Loading 动画

本文介绍了如何使用CSS实现小菊花加载动画的详细步骤。通过拆分动画元素、旋转、重叠以及设置动画效果,逐步讲解了如何创建这种常见的加载图标。文章特别提到了CSS的transform属性中的rotate()和steps()函数在动画中的应用。
摘要由CSDN通过智能技术生成

做动画最要的是思路,做多了,动画其实非常简单,我们今天来实现一个小菊花加载动画:

4cc9b39aa67fccc02d179936a27290cd.gif

做动画的关键一步是「拆分」,这张图中包含了 12 根「小柱子」,每根小柱子的透明度不一样,让这 12 根「小柱子」旋转起来,就构成了整个动画:

70b6332b3496325778ac9a89911e6d18.png

做这个动画可以按照下面几步来实现:

第一步:画出 12 根小柱子,并设置不同的透明度。通过观察发现,我们可以画 12 个正方形,每个正方形中画 1 条竖线,通过旋转的方式来改变小柱子的位置:

ea1c01f6d3be5a608a5f0dcb4557e2f1.png

代码可以这样写,创建一个 div 来包裹这 12 个正方形,通过 ::before 给正方形添加一个小柱子:

3bf27d451af9418e9ecd691b3bd05d65.png

30d790bfe14719ac6df238c2127a8a86.png

第二步:想把这 12 个正方形组合成一个圆,需要把他们旋转一下,每个正方形旋转 30度,正好是 1 圈(30*12=360),并设置不同的透明度:

41beb326ea3ed8dcc22a534419759e14.png

代码类似这样,把每个元素进行旋转 30度,为不影响阅读体验,我只截了 3 个元素的代码图:

bf75f10c4a3bfebe5f922e8464608910.png

第三步:这 12 个正方形现在是竖直排列的,我们把它们重叠到一块,这些小柱子就组成了一个圆。

10e1bece1f3cf66500e72ae8f8f1a95e.png

修改类选择器 dot 的 position 属性为 absolute,这时这些元素即可重叠起来:

7f2d378451b0d4f1d8482678e9846651.png

为了好辨别,我给每个正方形加了边框,我把边框去掉就成了我们想要的效果:

315847f5501a9f0f5a0dcc51ea66f8df.png

第四步:让这个圆旋转起来就可以了:

4cc9b39aa67fccc02d179936a27290cd.gif

旋转直接使用 CSS 的 animation 即可实现,这个地方需要大家注意一下,这里用的 timing-function 是 steps(12),关于 step 函数,在 小猴子跌落山崖之 linear、ease、ease-in 这节内容中我并没有提到,这里补存一下。steps 它可以把一个动画的 duration 分成几段,每段来完成一个动作,动画执行期间元素看起来并不是「平滑」地过度,比如钟表的秒针跳动:

61e23eae123ac455649ad829c14fe188.gif

这个小菊花的 Loading 也是让它有类似的效果,一蹦一蹦的感觉。

1a6b5972cce5ed584562311ae66f3709.png

今天这节内容主要利用了 transform 的 rotate() 函数,在 让按钮“呼吸”一会(呼吸动画)这节内容中运用了 scale() 函数,transform 对于做动画是一把「尖刀」,关于 transform 还有很多属性值得学习:

4ea2b41754fc8900ec01adb2cb122b6b.png

本文借鉴了 vant-weapp 的设计思想。


推荐阅读: 环形进度条没有想象的那么简单 跳动的音符动画实现原理剖析 https://github.com/youzan/vant-weapp/tree/dev/dist/loading https://designmodo.com/demo/stepscss/index.html

2d0d812fc521379a67957e1603f555ee.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值