纯CSS3实现圆形进度条动画
2017-05-08 11:59
645 查看
悄悄地,GIF 格式的进度条已经越来越少,CSS 进度条如雨后春笋般涌现。今天要介绍的这个 CSS3 进度条,效果和 Flyme OS 4 上的加载动画一样。
首先,来看下最终的效果:
它的 HTML 结构也很简单,但不是 Single Element:
<div class="spinner"><i></i></div>
外层元素 .spinner 负责显示底部的半透明圆环:
.spinner { font-size: 20px; width: 1em; height: 1em; border-radius: 50%; box-shadow: inset 0 0 0 .1em rgba(58, 168, 237, .2); }
.spinner 里的 i 元素被裁剪(clip)了一半,并做 0° 至 180° 的顺时钟旋转:
.spinner i { position: absolute; clip: rect(0, 1em, 1em, .5em); width: 1em; height: 1em; animation: spinner-circle-clipper 1s ease-in-out infinite; } @keyframes spinner-circle-clipper { 0% { transform: rotate(0deg); } 100% { transform: rotate(180deg); } }
i 的 :after 伪元素同样被裁减了一半,并做 -180° 至 180° 的顺时钟旋转:
.spinner i:after { position: absolute; clip: rect(0, 1em, 1em, .5em); width: 1em; height: 1em; content: ''; animation: spinner-circle 1s ease-in-out infinite; border-radius: 50%; box-shadow: inset 0 0 0 .1em #3aa8ed; } @keyframes spinner-circle { 0% { transform: rotate(-180deg); } 100% { transform: rotate(180deg); } }
代码就这么几行,通过 2 个元素不断旋转导致的角度差,配合裁剪就能实现平滑的圆环长度变化效果。
慢动作、放大版:
PS: 你可以通过更改 .spinner 的 font-size 来缩放进度条的大小~
转载自:http://c7sky.com/css3-flyme-loading-spinner.html
相关文章推荐
- 利用css3动画和border来实现圆形进度条
- css3实现圆形进度加载动画
- 用CSS3实现动画进度条
- 使用SVG和CSS3创建圆形进度条动画
- 详解用CSS3制作圆形滚动进度条动画效果
- 用CSS3实现动画进度条
- 详解用CSS3制作圆形滚动进度条动画效果
- 详解用CSS3制作圆形滚动进度条动画效果
- css3实现圆环加载进度条动画
- vue2.0+SVG实现音乐播放圆形进度条组件,传入实时百分比实现圆圈进度动画效果
- 详解用CSS3制作圆形滚动进度条动画效果
- 详解用CSS3制作圆形滚动进度条动画效果
- Android开发自定义控件实现一个圆形进度条【带数值和动画】
- CSS3实现圆形进度条
- 纯css3实现的圆形进度条
- 圆形进度条/百分比数据 --- 利用css3和js实现
- 详解用CSS3制作圆形滚动进度条动画效果
- WPF利用动画实现圆形进度条
- css3实现圆形加载动画的js插件
- js写圆形动态进度条圆形指示器,动画怎么实现,进度条变色,radialIndicator.js的使用说明用法