css3圆环旋转效果动画怎么做

html-css014

css3圆环旋转效果动画怎么做,第1张

html结构:

<div id="progress">

      <span></span>

</div>

css样式:

#progress{

            width: 50%

            height: 30px

            border:1px solid #ccc

            border-radius: 15px

            margin: 50px 0 0 100px

            overflow: hidden

            box-shadow: 0 0 5px 0px #ddd inset

        }

        #progress span {

            display: inline-block

            width: 100%

            height: 100%

            background: #2989d8 /* Old browsers */

            background: -moz-linear-gradient(45deg, #2989d8 33%, #7db9e8 34%, #7db9e8 59%, #2989d8 60%) /* FF3.6+ */

            background: -webkit-gradient(linear, left bottom, right top, color-stop(33%,#2989d8), color-stop(34%,#7db9e8), color-stop(59%,#7db9e8), color-stop(60%,#2989d8)) /* Chrome,Safari4+ */

            background: -webkit-linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%) /* Chrome10+,Safari5.1+ */

            background: -o-linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%) /* Opera 11.10+ */

            background: -ms-linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%) /* IE10+ */

            background: linear-gradient(45deg, #2989d8 33%,#7db9e8 34%,#7db9e8 59%,#2989d8 60%) /* W3C */

            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2989d8', endColorstr='#2989d8',GradientType=1 ) /* IE6-9 fallback on horizontal gradient */

            background-size: 60px 30px

            text-align: center

            color:#fff

            -webkit-animation:load 3s ease-in

        }

        @-webkit-keyframes load{

            0%{

                width: 0%

            }

            100%{

                width:100%

            }

        }

可以看到其实这种进度条的动画是最容易实现的,根据具体进度百分比设置默认的width百分比和动画里100%处的width百分比就行了,比如说,我想实现70%的进度条动画效果,那么我只需要修改一下两处地方:

#progress span{

    width: 70%

}

@-webkit-keyframes load{

      0%{

        width: 0%

      }

    100%{

        width:70%

      }

}

  昨天逛网页时看到有用css与js实现环形进度条的(那位博主在面试时被要求当场写出环形进度条π_π),然后就想尝试下写出来(感觉好尴尬),说实话春节后遗症真可怕 haha~

  看了网上的 三种方法 实现方式如下:

  两个clip过的半圆,边框设置颜色,左侧的用来旋转,右侧的固定不动(width:0px),当进度到达50%时, 右侧的半圆显示出来(同时左半圆和右半圆的父元素div覆盖最外层的div),左侧的半圆继续旋转 。

  可能我没说清楚,原文链接: http://blog.csdn.net/angeljsl/article/details/51208960

  使用SVGstroke-dasharray寥寥数行实现圆环loading进度效果,原文链接: http://www.zhangxinxu.com/wordpress/?p=4889

  利用path元素,使用path指令绘制扇形,原文链接: http://www.tuicool.com/articles/e2UzuaQ

  常用的path指令:

两个介绍 SVG比较详细的网址

   http://www.w3cplus.com/css3/using-making-sense-of-clip-path.html

   http://www.mb5u.com/HTML5/html5_96413.html

  核心就是使用-webkit-clip-path:polygon()切割div,border-radius:50%画出圆弧

html5+javascript 实现的圆形进度条,应该符合你要求

源代码 : http://blog.csdn.net/tangdou5682/article/details/52778766