css3 制作动态饼图

http://codepen.io/CreativeJuiz/pen/vFBIh
<style>
    /* Inspirated from  http://www.alessioatzeni.com/wp-content/tutorials/html-css/CSS3-loading-animation-loop/index.html */
    .ouro {
        position: relative;
        display:inline-block;
        height: 46px;
        width: 46px;
        margin: 1em;
        border-radius: 50%;
        background: none repeat scroll 0 0 #DDDDDD;
        overflow:hidden;
        box-shadow: 0 0 10px rgba(0,0,0,.1) inset, 0 0 25px rgba(0,0,255,0.075);
    }

    .ouro:after {
        content: "";
        position: absolute;
        top: 9px; left: 9px;
        display: block;
        height: 28px; width: 28px;
        background: none repeat scroll 0 0 #F2F2F2;
        border-radius: 50%;
        box-shadow: 0 0 10px rgba(0,0,0,.1);
    }
    .ouro > span {
        position: absolute;
        height: 100%; width: 50%;
        overflow: hidden;
    }
    .left  { left:0   }
    .right { left:50% }

    .anim {
        position: absolute;
        left: 100%; top: 0;
        height: 100%; width: 100%;
        border-radius: 999px;
        background: none repeat scroll 0 0 #508EC3;
        opacity: 0.8;
        -webkit-animation: ui-spinner-rotate-left 3s infinite;
        animation: ui-spinner-rotate-left 3s infinite;
        -webkit-transform-origin: 0 50% 0;
        transform-origin: 0 50% 0;
    }
    .left .anim {
        border-bottom-left-radius: 0;
        border-top-left-radius: 0;
    }
    .right .anim {
        border-bottom-right-radius: 0;
        border-top-right-radius: 0;
        left: -100%;
        -webkit-transform-origin: 100% 50% 0;
        transform-origin: 100% 50% 0;
    }

    /* v2 */
    .ouro2 .anim {
        -webkit-animation-delay:0;
        animation-delay:0;
    }
    .ouro2 .right .anim{
        -webkit-animation-delay: 1.5s;
        animation-delay: 1.5s;
    }

    /* v3 */
    .ouro3 .anim {
        -webkit-animation-delay: 0s;
        -webkit-animation-duration:3s;
        -webkit-animation-timing-function: linear;
        animation-delay: 0s;
        animation-duration:3s;
        animation-timing-function: linear;
    }
    .ouro3 .right .anim{
        -webkit-animation-name: ui-spinner-rotate-right;
        -webkit-animation-delay:0;
        -webkit-animation-delay: 1.5s;
        animation-name: ui-spinner-rotate-right;
        animation-delay:0;
        animation-delay: 1.5s;
    }

    /* round variation */
    .round .ouro:after {display:none }

    /* double variation */
    .double .ouro:after {
        height: 13px; width: 13px;
        left: 7px; top: 7px;
        border: 10px solid #ddd;
        background: transparent;
        box-shadow: none;
    }

    @keyframes ui-spinner-rotate-right{
        0%{transform:rotate(0deg)}
        25%{transform:rotate(180deg)}
        50%{transform:rotate(180deg)}
        75%{transform:rotate(360deg)}
        100%{transform:rotate(360deg)}
    }
    @keyframes ui-spinner-rotate-left{
        0%{transform:rotate(0deg)}
        25%{transform:rotate(0deg)}
        50%{transform:rotate(180deg)}
        75%{transform:rotate(180deg)}
        100%{transform:rotate(360deg)}
    }

    @-webkit-keyframes ui-spinner-rotate-right{
        0%{-webkit-transform:rotate(0deg)}
        25%{-webkit-transform:rotate(180deg)}
        50%{-webkit-transform:rotate(180deg)}
        75%{-webkit-transform:rotate(360deg)}
        100%{-webkit-transform:rotate(360deg)}
    }
    @-webkit-keyframes ui-spinner-rotate-left{
        0%{-webkit-transform:rotate(0deg)}
        25%{-webkit-transform:rotate(0deg)}
        50%{-webkit-transform:rotate(180deg)}
        75%{-webkit-transform:rotate(180deg)}
        100%{-webkit-transform:rotate(360deg)}
    }

    /*
     * Some bugs with Chrome (Android), Safari and Opera, I'll try to see how  made his code.
     */

    /* presentation styles */
    html {height: 100%}
    body { text-align:center; background: radial-gradient(circle, #fff 0%, #bbb 85%) no-repeat; background: -webkit-radial-gradient(circle, #fff 0%, #bbb 85%) no-repeat; height: 100%; display:table; width:100%}
    .block {display: table-cell; vertical-align:middle}
    h1, a { margin-top: 1em; font-family: "Open Sans Light", "Open Sans", "Segoe UI", Helvetica, Arial; color: #888; font-weight: lighter;}
    .info {margin-top: 25px}
    .info a {font-size: 12px; color: #999}
    .info br + a {text-decoration:none}
    </style>
<div class="block">
    <h1>OuroboroCSS</h1>

    <p class="circle">
  <span class="ouro">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>

  <span class="ouro ouro2">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>

  <span class="ouro ouro3">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>
    </p>

    <p class="round">
  <span class="ouro">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>

  <span class="ouro ouro2">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>

  <span class="ouro ouro3">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>
    </p>

    <p class="double">
  <span class="ouro">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>

  <span class="ouro ouro2">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>

  <span class="ouro ouro3">
    <span class="left"><span class="anim"></span></span>
    <span class="right"><span class="anim"></span></span>
  </span>
    </p>

    <p class="info"><a href="http://en.wikipedia.org/wiki/Ouroboros">Why the name OuroboroCSS?</a><br /><a href="http://twitter.com/geoffrey_crofte">by @geoffrey_crofte</a></p>
</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值