悄悄地,GIF 格式的进度条已经越来越少,CSS 进度条如雨后春笋般涌现。今天要介绍的这个 CSS3 进度条,效果和 Flyme OS 4 上的加载动画一样。
首先,来看下最终的效果:
不会动对不对,那是因为我懒啊不想截动态图啊!!!(别打我→_→)
下面附上html代码:
<div class="spinner"><i></i></div>
css代码:
.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 { 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); }} .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); }}
思路:
1.外层元素 .spinner
负责显示底部的半透明圆环;
2..spinner
里的 i
元素被裁剪(clip)了一半,并做 0° 至 180° 的顺时钟旋转;
3.i
的 :after
伪元素同样被裁减了一半,并做 -180° 至 180° 的顺时钟旋转;
最后, 你可以通过更改 .spinner
的 font-size
来缩放进度条的大小
END