您现在的位置是:网站首页> 编程资料编程资料
利用CSS3实现进度条的两种姿势详解css 进度条的文字根据进度渐变的示例代码利用css3实现进度条效果及动态添加百分比css 横向进度条和竖向进度条实现代码使用 css3 实现圆形进度条的示例使用CSS实现阅读进度条css 实现圆形渐变进度条效果的示例代码
2023-10-21
345人已围观
简介 这篇文章主要给大家介绍了利用CSS3实现进度条的两种姿势,文中给出了详细的示例代码和图文介绍,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
效果图如下:


第一种姿势如下
先上代码
/*对应CSS*/ #progress{ width: 300px; height: 30px; border:1px solid #ccc; border-radius: 15px; overflow: hidden; /*注意这里*/ box-shadow: 0 0 5px 0px #ddd inset; } #progress span { display: inline-block; width: 70%; height: 100%; background: linear-gradient(45deg, #2989d8 30%,#7db9e8 31%,#7db9e8 58%,#2989d8 59%); background-size: 60px 30px; text-align: center; color:#fff; animation:load 3s ease-in; } @keyframes load{ 0%{ width: 0%; } 100%{ width:70%; } }上方的渐变色使用了css3中的 linear-gradient
linear-gradient语法
= linear-gradient([ [ | to ] ,]? [, ]+) = [left | right] || [top | bottom] = [ | ]?
- angle:用角度值指定渐变的方向(或角度)。
- to left:设置渐变为从右到左。相当于: 270deg
- to right:设置渐变从左到右。相当于: 90deg
- to top:设置渐变从下到上。相当于: 0deg
- to bottom:设置渐变从上到下。相当于: 180deg。这是默认值,等同于留空不写。
- color-stop: 用于指定渐变的起止颜色:
- color:指定颜色。
- length:用长度值指定起止色位置。不允许负值
- percentage:用百分比指定起止色位置。
栗子:
.test1{ background: linear-gradient(#EA2000, #E5A399); } .test2 { background: linear-gradient(45deg,#EA2000 20%,#E5632D 50%, #E5B12D 80%); } .test3 { background: linear-gradient(to top right, #000, #416796 50%, #B5CAE4); } .test4{ background: linear-gradient(45deg, #2989d8 30%,#7db9e8 31%,#7db9e8 58%,#2989d8 59%); }效果图:

动画通过keyframes来实现,通过改变span的宽度来实现进度的效果,素不素hin简单?!
现在的进度条效果是只有70%的效果,只要改变width的值就可以啦,就像下图,一致改成某个值即可。

第二种姿势
首先,构造好一个正方形的div,将这个正方形对称分成左右两块,如下
这里构造的是一个200px 200px的一个正方形,分成两块100px200px的矩形。
.progress2{ width: 200px; height: 200px; margin: 100px auto; position: relative; border:1px solid #ddd; } .rect{ width: 100px; height: 200px; position: absolute; top:0; overflow: hidden; /*注意这里*/ } .right{ right:0; } .left{ left:0; }如下效果

接下来,在每一块矩形中再构造一个空心圆,先构造右半边,如下
.circle{ width: 160px; height: 160px; border:20px solid #ccc; border-radius: 50%; position: absolute; top:0; } .rightcircle{ border-top:20px solid rgb(41,137,216); border-right:20px solid rgb(41,137,216); right:0; }会看到下面的效果

由于在class:rect中,将overflow设置成了hidden,使得溢出的部分被遮盖了,之后的效果实现与这个属性关系也紧密相连。
如果没有设置该属性,效果就是这样的。

那会发现有一部分被盖住了,我们在使他旋转45度即可
.circle{ width: 160px; height: 160px; border:20px solid #ccc; border-radius: 50%; position: absolute; top:0; transform: rotate(45deg); /*注意这里*/ }效果如下

我们实现动画效果的方式就是让右半边旋转180度,然后左半边旋转180度,凑成完整的效果。
先给这右半边设置动画效果,即一开始让其旋转45度,然后旋转180度,由于这只是右半边,所以在50%的时候就应该旋转完毕,之后一直保持不变。
.rightcircle{ border-top:20px solid rgb(41,137,216); border-right:20px solid rgb(41,137,216); right:0; animation: load_right 5s linear infinite; } @keyframes load_right{ 0%{ transform: rotate(45deg); } 50%{ transform: rotate(225deg); } 100%{ transform: rotate(225deg); } } 这是没有在class rect中设置overflow:hidden的效果

这是在class rect中设置了overflow:hidden的效果

现在,我们就可以把左半边也凑上了,同理,动画效果一开始先旋转45度,调正,然后一直保持不变,到50%之后,再开始旋转180度。这样就与右半边衔接上了。
.leftcircle{ border-bottom:20px solid rgb(41,137,216); border-left:20px solid rgb(41,137,216); left:0; animation: load_left 5s linear infinite; } @keyframes load_left{ 0%{ transform: rotate(45deg); } 50%{ transform: rotate(45deg); } 100%{ transform: rotate(225deg); } }这是整体的效果

可以调整角度或者调整颜色即可实现反向的效果。
我是调整了颜色就可以得到最开始的动画效果啦,下面是完整的代码
.progress2{ width: 200px; height: 200px; margin: 100px auto; position: relative; } .rect{ width: 100px; height: 200px; position: absolute; top:0; overflow: hidden; } .right{ right:0; } .left{ left:0; } .circle{ width: 160px; height: 160px; border:20px solid rgb(41,137,216); border-radius: 50%; position: absolute; top:0; transform: rotate(45deg); } .rightcircle{ border-top:20px solid #ccc; border-right:20px solid #ccc; right:0; animation: load_right 5s linear infinite; } .leftcircle{ border-bottom:20px solid #ccc; border-left:20px solid #ccc; left:0; animation: load_left 5s linear infinite; } @keyframes load_right{ 0%{ transform: rotate(45deg); } 50%{ transform: rotate(225deg); } 100%{ transform: rotate(225deg); } } @keyframes load_left{ 0%{ transform: rotate(45deg); } 50%{ transform: rotate(45deg); } 100%{ transform: rotate(225deg); } }
总结
以上就是关于CSS3实现进度条的两种方法,希望对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
相关内容
- 详解CSS五种方式实现Footer置底CSS实现footer“吸底”效果利用CSS使footer固定在页面底部的实例代码html的footer置于页面最底部的简单实现方法详解HTML5将footer置于页面最底部的方法(CSS+JS)
- CSS3实现头像旋转效果HTML5+css3:3D旋转木马效果相册纯CSS3制作的鼠标悬停时边框旋转纯css3实现简单的旋转风车动画特效源码css3基于svg实现的地球旋转动画特效源码html5+css3实现酷炫的3D立方体旋转动画特效源码jQuery+CSS3实现按钮控制螺纹旋转图片切换特效源码CSS3 3D立方体效果示例-transform也不过如此利用CSS实现立方体360度旋转效果实例代码纯css3实现带旋转效果的摩天轮动画特效源码jQuery和CSS3 3D旋转项目展示模板特效
- 用React加CSS3实现微信拆红包动画效果16种基于css3 Bootstrap图片hover悬停遮罩效果CSS3非常可爱的动态表情特效源码纯CSS3实现Material Design效果css3实现的响应式网格蜂巢排版样式布局效果源码css3类选择器之结合元素选择器和多类选择器用法css background-attachment属性进阶css 背景固定样式background-attachment属性基础纯css3实现的鼠标悬停图片遮罩文字显示动画特效源码炫酷纯CSS3预加载动画特效源码 3种
- css3类选择器之结合元素选择器和多类选择器用法css3之UI元素状态伪类选择器实例演示总结30个CSS3选择器 IE8下CSS3选择器nth-child() 不兼容问题的解决方法对CSS3选择器的研究(详解)详解CSS3中属性选择器新增加的特性CSS3中的常用选择器使用示例整理CSS3 新增选择器的实例
- css background-attachment属性进阶css 背景固定样式background-attachment属性基础css background 背景图的设置方法CSS background全部汇总CSS的background属性及CSS3的背景图片设置总结CSS制作边框效果的技巧总结详解使用CSS固定页面背景图片位置的方法使用CSS3来实现滚动视差效果的教程css 中background 设置文本框背景图 的方法
- css 背景固定样式background-attachment属性基础简述CSS中的背景属性background详解CSS定义字体、颜色、背景等属性css3实现一个div设置多张背景图片及background-image属性实例演示CSS的background属性及CSS3的背景图片设置总结详解CSS3新增的背景属性
- 利用css实现波纹动画效果实例纯CSS实现波纹波动动画特效源码css3 canvas实现的线条型波纹动画特效源码
- 利用Bootstrap实现漂亮简洁的CSS3价格表实例源码纯CSS3 Bootstrap炫酷响应式垂直时间轴特效源码CSS3 Bootstrap 3隐藏滑动侧边栏菜单特效CSS3+Bootstrap制作简约炫酷进度条UI动画特效源码Bootstrap+CSS3实现Tabs选项卡切换特效源码CSS3 Bootstrap炫酷飞机和跑道样式进度条动画特效源码
- 热血龙珠 战士属性潜力成长一览表_手机游戏_游戏攻略_
- 中国好学霸 商代文物的名字是什么 图文攻略_手机游戏_游戏攻略_
