CSS 实现加载动画之五-光盘旋转

今天做的这个动画叫光盘旋转,名字自己取的。动画的效果估计很多人都很熟悉,就是微信朋友圈里的加载动画。做过前面几个动画,发现其实都一个原理,就是如何将动画的元素如何分离出来。这个动画的实现也很简单,关键点在于如何将元素拼凑成风车形状。然后定义动画的关键帧为rotate 360度,应用于整个元素上,就可以使整个元素旋转起来。案例在请在chrome中查看。

1. 先看截图

2. 代码实现思路

2.1 首先还是定义四个元素,元素的中心为这四个元素组成的圆的圆心。这样定义的目的可以保证元素拼凑成一个正圆。

2.2 在单个元素的头尾各定义一个子元素,子元素旋转一定的角度,使其平行排列,中间刚好留一个正圆的位置。这里用了rotate和translate属性,没有用skew属性,是因为skew方法会使元素拉伸后变小。

2.3 将每个元素的子元素都定义不同的背景色,定义完成后,会形成8个不同的颜色排列,此时元素的形状已经产生了。需要注意的是,最后一个元素需要裁剪下,因为有可能会覆盖第一个元素。案例中第4,8个子元素是分开写的。

2.4 此时在圆心位置定义一个圆,圆的大小刚好覆盖中间的空隙位置。外层容器也设为一个圆,大小为能全部显示所有的背景颜色,多余的部分截断隐藏。

2.5 定义动画,并在外层容器上应用这个动画。这个动画的方式比较简单,就是旋转,直接使用rotate即可。

3. 源代码

1

2

3

4

5

CSS3实现加载的动画效果5

6

7

8

9

10 *{margin:0;padding:0;}

11 body{background:#464646;}

12

13 .m-load{width:490px;height:330px;margin:100px auto;background:url(‘load.png‘) center center no-repeat;}

14

15 /** 加载动画的静态样式 **/

16 .m-load2{position:relative;width:52px;height:52px;margin:0 auto;border-radius:52px;border:2px solid #fff;overflow:hidden;}

17 .m-load2 .item{position:absolute;left:50%;top:0;width:20px;height:100%;margin-left:-10px;}

18 .m-load2 .item:nth-child(2){-webkit-transform:rotate(45deg);}

19 .m-load2 .item:nth-child(3){-webkit-transform:rotate(90deg);}

20 .m-load2 .item:nth-child(4){-webkit-transform:rotate(135deg);clip:rect(-26px,18px,26px,-18px);}

21 .m-load2 .item:nth-child(5){-webkit-transform:rotate(135deg);clip:rect(26px,37px,78px,2px);}

22 .m-load2 .item:before,.m-load2 .item:after{content:‘‘;position:absolute;left:0;width:18px;height:100%;}

23 .m-load2 .item:before{bottom:52%;border-left:2px solid #fff;-webkit-transform-origin:left bottom;-webkit-transform:translate(100%,0) rotate(-45deg);}

24 .m-load2 .item:after{top:52%;border-right:2px solid #fff;-webkit-transform-origin:right top;-webkit-transform:translate(-100%,0) rotate(-45deg);}

25 .m-load2 .item:nth-child(1):before{background:#48ec53;}

26 .m-load2 .item:nth-child(1):after{background:#f75e5a;}

27 .m-load2 .item:nth-child(2):before{background:#a6ea4b;}

28 .m-load2 .item:nth-child(2):after{background:#724dee;}

29 .m-load2 .item:nth-child(3):before{background:#e8d84b;}

30 .m-load2 .item:nth-child(3):after{background:#44abec;}

31 .m-load2 .item:nth-child(4):before{background:#fdc103;}

32 .m-load2 .item:nth-child(5):after{background:#51ddeb;}

33

34 .m-load2 .point{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:18px;background:#464646;}

35

36 /** 加载动画 **/

37 @-webkit-keyframes load{

38 100%{-webkit-transform:rotate(360deg);}

39 }40 .m-load2{-webkit-animation:load 1.8s linear infinite;}

41

42

43

44

45

css光盘转动,CSS 实现加载动画之五-光盘旋转相关推荐

  1. CSS 实现加载动画之五-光盘旋转

    今天做的这个动画叫光盘旋转,名字自己取的.动画的效果估计很多人都很熟悉,就是微信朋友圈里的加载动画.做过前面几个动画,发现其实都一个原理,就是如何将动画的元素如何分离出来.这个动画的实现也很简单,关键 ...

  2. CSS 实现加载动画之四-圆点旋转

    原文:CSS 实现加载动画之四-圆点旋转 圆点旋转也是加载动画中经常用到的.其实现方式和菊花旋转一样,只不过一个是线条形式,一个是圆点形式.圆点按照固定的旋转角度排列,加上延时的改变透明度的动画就可以 ...

  3. CSS 实现加载动画之一-菊花旋转

    CSS 实现加载动画之一-菊花旋转 原文:CSS 实现加载动画之一-菊花旋转 最近打算整理几个动画样式,最常见的就是我们用到的加载动画.加载动画的效果处理的好,会给页面带来画龙点睛的作用,而使用户愿意 ...

  4. CSS 3.0实现时光轴加载动画

    给大家分享一个用CSS 3.0实现时光轴加载动画,效果如下: 以下是代码实现,欢迎大家复制.粘贴和收藏. <!DOCTYPE html> <html lang="en&qu ...

  5. CSS实现最简洁的加载动画

    纯CSS能实现的功能越来越多了,能用css实现的就别用js,今天教大家用最短的代码实现下面这个加载动画,这个加载动画的优势不仅是短小,而且不需要额外的dom元素就可实现,因此在那些异步加载的dom身上 ...

  6. [每天进步一点点~] uni-app css 实现 10种 loading加载动画效果

    第一种 效果图: 检测动画.gif 需要准备一张下面的底图,因为我写不出这种分成无数线段的圆... 加载loading底图.png 代码: <template><view class ...

  7. css实现圆形进度条加载动画

    这里我会把遇到这个需求时的实现过程和遇到的问题记录下来,如果只是要看最终实现结果可直接滑到底部看实现代码. 我们经常可以看到网上有一些圆形进度条跟随数字的变化慢慢变成一个圆,这个动画实际上可以通过纯c ...

  8. android菊花动画,仿ios系统加载动画(菊花旋转)

    无需添加图片,通过自定义view方式绘制菊花图,代码极简 效果图: image 一.自定义loadingview: public class LoadingView extends View { pr ...

  9. css 实现心形加载动画

    文章目录 前言 一.html代码 二.css 总结 前言 心形加载动画 提示:以下是本篇文章的代码内容,供大家参考,相互学习 一.html代码 代码如下: <html><head&g ...

最新文章

  1. 解答:CF截图保存在哪
  2. Win10 通过cmd查看端口占用、相应进程、杀死进程等的命令
  3. lazada店铺成长案例分享!把握小众类目商机,店铺月销过万单!
  4. 软考-信息系统项目管理师-项目成本管理
  5. CSS3: border-radius边框圆角详解
  6. 为什么我们从Angular 2迁移到Vue.js(为什么我们没有选择React)
  7. ngzorro html源码,Angular 中 ngTemplateOutlet 的用法以及ng-zorro源码分析!
  8. python中scale_Python中的Log-scale mathplotlib?
  9. abstract class和interface
  10. 金万维异速联服务器重装,金万维异速联服务器配置说明.doc
  11. 赫兹的单位换算_赫兹单位换算(赫兹的单位换算公式)
  12. Linux平台下快速搭建FTP服务器
  13. 冈萨雷斯:数字图像处理(一):第一章绪论
  14. Python turtle画玫瑰
  15. Android 保持屏幕不熄屏
  16. Unity3d中渲染到RenderTexture的原理,几种方式以及一些问题
  17. 周期信号的傅里叶级数展开
  18. 解决 Unable to determine application id: com.android.tools.idea.run.ApkProvisionException
  19. webug 4.0 第九关 反射型xss
  20. Kafka 多话题消费者

热门文章

  1. 反思 大班 快乐的机器人_幼儿园大班教案《蚂蚁宝宝钻洞》含反思
  2. 使用 jQuery 的 Autocomplete 插件实现input输入提示功能 input 输入模糊提示demo
  3. 微软拆分 VS Code 中 Python 扩展,部分功能可独立下载
  4. 历史上的今天:ATT 成立;全球最大分布式计算项目正式停止;家酿俱乐部首次会议...
  5. Google 高薪争夺 Rust 人才,将用 Rust 重构关键组件!
  6. 低代码,是否能“取代”开发者?
  7. 不要再被Python洗脑了,来看看这个吧......
  8. 争议下的「中台之路」,该如何破局?
  9. 清晰架构的 Go 微服务: 程序容器
  10. RPC 的超时设置,一不小心就是线上事故!