今天做的这个动画叫光盘旋转,名字自己取的。动画的效果估计很多人都很熟悉,就是微信朋友圈里的加载动画。做过前面几个动画,发现其实都一个原理,就是如何将动画的元素如何分离出来。这个动画的实现也很简单,关键点在于如何将元素拼凑成风车形状。然后定义动画的关键帧为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 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" Content="text/html; charset=utf-8;">
 5 <title>CSS3实现加载的动画效果5</title>
 6 <meta name="author" content="rainna" />
 7 <meta name="keywords" content="rainna's css lib" />
 8 <meta name="description" content="CSS3" />
 9 <style>
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 </style>
42 </head>
43
44 <body>
45 <div class="m-load"></div>
46
47 <div class="m-load2">
48     <div class="item"></div>
49     <div class="item"></div>
50     <div class="item"></div>
51     <div class="item"></div>
52     <div class="item"></div>
53     <div class="point"></div>
54 </div>
55 </body>
56 </html>

转载于:https://www.cnblogs.com/zourong/p/3998485.html

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

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

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

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

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

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

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

  4. 5分钟实现漂亮的CSS加载动画,纯CSS实现加载动画

    目录 1 视频 2 知识点 2.1 CSS calc() 函数 2.2 CSS var() 函数 2.3 CSS3 box-shadow 属性 2.4 CSS3 box-sizing 属性 2.5 C ...

  5. CSS 实现加载动画(最简单实现)

    一.源码 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8& ...

  6. 使用HTML+CSS制作加载动画

    简单的页面加载动画 html部分 <!DOCTYPE html> <html><head><meta charset="utf-8" /& ...

  7. 【动画消消乐】HTML+CSS 自定义加载动画 068

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...

  8. 【动画消消乐】HTML+CSS 自定义加载动画 064(currentColor的妙用!)

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...

  9. 【动画消消乐】HTML+CSS 自定义加载动画 065

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出-   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...

最新文章

  1. 盘点互联网大厂AI战略变迁,开发者将怎样pick前进路线?
  2. UOJ#77. A+B Problem [可持久化线段树优化建边 最小割]
  3. 手环是如何测试人体健康数据?
  4. Umi 4 RC 发布
  5. python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...
  6. 常见的div盒子居中(上下左右)实现
  7. HTML5学习之视频与音频(三)
  8. 惩罚函数外点matlab,禁忌搜索算法求解带时间窗的车辆路径问题(惩罚函数版 附MATLAB代码)...
  9. blob类型对象转为file类型对象
  10. 1065. 最小公倍数
  11. WebPlayer9电影整站系统第三方电影批量添加工具
  12. c语言实验:厘米换算英尺英寸
  13. Word错别字校对-JCJC
  14. Wp模板,免费WordPress模板,WordPress插件详解
  15. 2020.8.31,文书网又更新啦,这次直接加入了登录后才能查看。
  16. linux的pacemaker集群
  17. ipv6无网络访问权限怎么办
  18. sqoop导入时候显示ERROR
  19. Xz1 android p更新,索尼XZ1/XZP港版正式推送Android 9.0更新
  20. 微信小程序开店怎么做?

热门文章

  1. Dynamics CRM 2015 站点地图公告配置实体显示名称的变更
  2. 案例:隐秘而低调的内存泄露(OOM)
  3. 服务器性能估算参考(硬件-应用服务器)
  4. [ASP.NET AJAX]类似.NET框架的JavaScript扩展
  5. 网站的SEO以及它和站长工具的之间秘密
  6. 【CDN】域名无法访问,ping不到,tracert不到
  7. android之自定义广播
  8. SharePoint 2013 Nintex Workflow 工作流帮助(六)
  9. 解决Vmware中安装Ubuntu Server 14.04 分辨率无法全屏问题
  10. ios之mknetworkkit笔记