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