这篇文章给大家分享的是有关css3实现圆形进度的方法是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
我们都知道做出一个静态的圆环形是很简单的,像下面这样就可以了
<!DOCTYPE html> <html> <head> <style> .circle{ width: 160px; height: 160px; border:20px solid orange; border-radius: 50%; } </style> </head> <body> <div class="circle"></div> </body> </html>
css3圆形效果如下:
但是圆形的进度条是一个动态的效果,所以就需要考虑很多了,首先我们来看一下css圆形进度条的实现思路:
我们可以把整个圆环分成左右两部分;左右两个半圆都旋转,比如先让右边半圆旋转再接上左边半圆然后左边半圆旋转,这样就可以实现了整个圆环的旋转,就是一个圆形进度条了。
下面我们就来看看css3圆形进度条具体的实现方法。
首先我们来看css3右边半圆的实现
<div class="right"> <div class="rightcircle"></div> </div>
.right{ position: relative; width: 100px; height: 200px; overflow: hidden; } .rightcircle{ width: 160px; height: 160px; border:20px solid transparent; border-radius: 50%; position: absolute; top:0; right: 0; border-top:20px solid lightblue; border-right:20px solid lightblue; -webkit-transform : rotate(45deg); -moz-transform : rotate(45deg); -o-transform : rotate(45deg); transform : rotate(45deg); /* 旋转45度 */ } /* 这里仅考虑webkit内核的情况,您可以写完整了 */ .rightcircle{ -webkit-animation-name: circle_right; /* 动画名称 */ -webkit-animation-duration: 5s; /* 完成一个动画需要的时间 */ -webkit-animation-timing-function: linear; /* 动画播放的方式,linear是匀速变化 */ -webkit-animation-iteration-count: infinite; /* 动画播放的次数,infinite是无限次数 */ } @-webkit-keyframes circle_right{ 0%{ transform : rotate(-135deg); } 100%{ transform : rotate(45deg); } }
css3右边半圆的实现效果如下:
css3左半圆实现和右半圆正好相反,代码如下:
.right{ position: relative; width: 100px; height: 200px; overflow: hidden; } .rightcircle{ width: 160px; height: 160px; border:20px solid transparent; border-radius: 50%; position: absolute; bottom:0; left: 0; border-bottom:20px solid lightblue; border-left:20px solid lightblue; -webkit-transform : rotate(45deg); -moz-transform : rotate(45deg); -o-transform : rotate(45deg); transform : rotate(45deg); /* 旋转45度 */ } /* 这里仅考虑webkit内核的情况,您可以写完整了 */ .rightcircle{ -webkit-animation-name: circle_right; /* 动画名称 */ -webkit-animation-duration: 5s; /* 完成一个动画需要的时间 */ -webkit-animation-timing-function: linear; /* 动画播放的方式,linear是匀速变化 */ -webkit-animation-iteration-count: infinite; /* 动画播放的次数,infinite是无限次数 */ } @-webkit-keyframes circle_right{ 0%{ transform : rotate(-135deg); } 100%{ transform : rotate(45deg); } }
css3左半圆效果如下:
两个半圆都实现出来了,接下来只需要将两个半圆拼接在一起就可以实现css3圆形进度条的效果了
css3实现圆形进度条代码如下:
<div class="circle_process"> <div class="wrapper right"> <div class="circle rightcircle"></div> </div> <div class="wrapper left"> <div class="circle leftcircle" id="leftcircle"></div> </div> </div>
.circle_process{ position: relative; width: 199px; height : 200px; } .circle_process .wrapper{ width: 100px; height: 200px; position: absolute; top:0; overflow: hidden; } .circle_process .right{ right:0; } .circle_process .left{ left:0; } .circle_process .circle{ width: 160px; height: 160px; border:20px solid transparent; border-radius: 50%; position: absolute; top:0; transform : rotate(-135deg); } .circle_process .rightcircle{ border-top:20px solid lightblue; border-right:20px solid lightblue; right:0; -webkit-animation: circle_right 5s linear infinite; } .circle_process .leftcircle{ border-bottom:20px solid lightblue; border-left:20px solid lightblue; left:0; -webkit-animation: circle_left 5s linear infinite; } @-webkit-keyframes circle_right{ 0%{ -webkit-transform: rotate(-135deg); } 50%,100%{ -webkit-transform: rotate(45deg); } } @-webkit-keyframes circle_left{ 0%,50%{ -webkit-transform: rotate(-135deg); } 100%{ -webkit-transform: rotate(45deg); } }
css3中圆形进度条效果如下:
感谢各位的阅读!关于css3实现圆形进度的方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。