zoukankan      html  css  js  c++  java
  • 纯CSS3实现圆形进度条动画

    悄悄地,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

  • 相关阅读:
    Unique Encryption Keys 暴力学习map,vector 函数
    hdu 1250 Hat's Fibonacci
    匈牙利算法模板 图的二分匹配 hdu 2063 过山车
    hdu 4260 汉诺塔问题 The End of The World
    各种常见文件的hex文件头
    Ubuntu & node.js
    Linux周期性任务的执行指令配置
    MySQL各版本的性能特性(从4.0版本开始)
    Tsung 1.5.0 增加对 WebSocket 和 BOSH 的支持
    ShowSlow+Yslow环境搭建
  • 原文地址:https://www.cnblogs.com/sakura-panda/p/6824420.html
Copyright © 2011-2022 走看看