博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS3创建圆圈进度条
阅读量:4966 次
发布时间:2019-06-12

本文共 1855 字,大约阅读时间需要 6 分钟。

最近在工作中需要做一个圆圈倒计时,刚开始的想法是做个纯数字的倒计时即可,可是需求觉得这个不太好看,想加个倒计时进度条。于是就有了接下来的分析过程...

我们知道CSS3可以很方便的画圆,圆环,然后在加上一个旋转动画不就可以实现了吗?

于是先把圆环画出来了

做到这里问题又来了,如何让红色的圆环一点一点的消失呢?此处一个圆环再怎么旋转终究是一个圆环,
此时觉得一个圆可能不够,何不在画一个白色的半圆再旋转呢?可是白色的半圆又如何一点一点的显示呢?貌似又回到了问题的起点。
我们知道overflow:hidden;可以让多余的部分隐藏,如果在配合两个半圆旋转不就可以实现了吗?
先画两个半圆试试
左半圆
右半圆
如果都顺时针旋转45度再刚刚好拼在一起就是一个完整的圆环

此时当我们再旋转的时候发现,圆环可以实现一点一点的消失了,但是当转过一个180度的时候这个半圆右出现了,此时我们可以用到前面的overflow:hidden;

CSS代码如下

.circleProgress_wrapper{    width: 160px;    height: 160px;    margin: 10px auto;    position: relative;}.wrapper{    width: 80px;    height: 160px;    position: absolute;    top:0;    overflow: hidden;}.right{    right:0;}.left{    left:0;}.circleProgress{    width: 160px;    height: 160px;    border:20px solid transparent;    border-radius: 50%;    position: absolute;    top:0;    /*transform: rotate(45deg);*/} .rightcircle{    border-top:20px solid red;    border-right:20px solid red;    right:0;    animation: circleProgressLoad_right 6s linear infinite;}.leftcircle{    border-bottom:20px solid red;    border-left:20px solid red;    left:0;    animation: circleProgressLoad_left 6s linear infinite;}

接下来用css3写个旋转动画即可

.rightcircle{    border-top:20px solid red;    border-right:20px solid red;    right:0;    animation: circleProgressLoad_right 6s linear infinite;}.leftcircle{    border-bottom:20px solid red;    border-left:20px solid red;    left:0;    animation: circleProgressLoad_left 6s linear infinite;}@keyframes circleProgressLoad_right{    0%{        transform: rotate(45deg);    }    50%,100%{        transform: rotate(225deg);    }}@keyframes circleProgressLoad_left{    0%,50%{        transform: rotate(45deg);    }    100%{        transform: rotate(225deg);    }}

完整的demo可以查看下面的实例

目前这里的倒计时动画是动画时间是6s,这里可以根据需要自行修改,这里的运行时间我在项目中是用js控制的,这样可以根据后台下发的时间值来倒计时,非常方便。

转载于:https://www.cnblogs.com/jesse131/p/9079233.html

你可能感兴趣的文章
30岁当下的困惑
查看>>
美国将会垄断互联网:为什么需要政府网关——一个技术人员的角度
查看>>
IdentityServer4【Topic】之定义客户端
查看>>
第14月第17天 automaticallyAdjustsScrollViewInsets contentInsetAdjustmentBehavior
查看>>
LintCode Coins in a Line III
查看>>
Hive 行列转换
查看>>
(转)Asp.Net生命周期系列五
查看>>
织梦栏目页分页title加"第N页"
查看>>
记录一次数据库链接不够用被drop掉的问题
查看>>
C语言实现通用链表初步(二)
查看>>
存储过程实现分页
查看>>
PHP开发环境安装说明书
查看>>
蓝点中文Linux2.0 实验十二 屏幕文本编辑器vi的使用
查看>>
swift,NSUserDefaults的swift化封装
查看>>
分享到QQ空间、新浪微博、腾讯微博的代码!
查看>>
通用媒体查询
查看>>
jmeter之JDBC
查看>>
实验四
查看>>
LeetCode-Shortest Word Distance II
查看>>
机器学习中的凸优化基础
查看>>