使用 CSS 动画进度条

     2023-05-08     218

关键词:

【中文标题】使用 CSS 动画进度条【英文标题】:Animating progress bars with CSS 【发布时间】:2013-04-03 10:36:17 【问题描述】:

所以,我在这个页面上有几个不同的进度条 - http://kaye.at/play/goals

这是我的 HTML 和 CSS:

<div class="meter"><span style="width: 100%;"></span></div>


.meter  
height: 5px;
position: relative;
background: #f3efe6;
z-index: 0;
margin-top: -5px;
overflow: hidden;


.meter > span 
z-index: 50;
display: block;
height: 100%;
background-color: #e4c465;
position: relative;
overflow: hidden;

我想简单地为进度条设置动画,让它从 0% 慢慢上升到它所处的任何百分比,而不是仅仅出现在那里,但我想以最简单的方式来做。我最好的选择是什么,我正在使用的当前代码是否可行?

【问题讨论】:

animation@keyframes 一起使用(例如,每10% 持续10 秒)并使用:after,这样您就可以在其中绘制进度图标(例如#)。 很抱歉,您能给我一个 HTML/CSS 示例吗?我有点业余,只做我自己的事情。 好的,我想通了!谢谢! 【参考方案1】:

我能想到的唯一方法是添加另一个span,因此 HTML 最终为:

<div class="meter">
    <span style="width:80%;"><span class="progress"></span></span>
</div>

需要额外的跨度,因为我们无法(仅使用 CSS)检查内联样式想要的宽度以及对其进行动画处理。不幸的是,我们无法为auto 制作动画。

CSS(您需要添加必要的前缀):

.meter  
    height: 5px;
    position: relative;
    background: #f3efe6;
    overflow: hidden;


.meter span 
    display: block;
    height: 100%;


.progress 
    background-color: #e4c465;
    animation: progressBar 3s ease-in-out;
    animation-fill-mode:both; 


@keyframes progressBar 
  0%  width: 0; 
  100%  width: 100%; 

您可以在here 中看到这一点。不支持 CSS 动画的浏览器只会让栏处于最终状态。

【讨论】:

谢谢,这正是我最终要做的。 (: 不用担心 - 这是一个非常漂亮的网站 :) 谢谢!非常感谢。 (:【参考方案2】:

我开发了一个进度条,它现在非常轻巧整洁,并且您也有百分比值,当百分比从 100% 变为 7% 时,我应用了 CSS 过渡,只需单击 Change 按钮即可查看有用。将 transition: width 3s ease; 从 3 秒更改为适合您需要更慢或更快转换的任何值。

function change()
				var selectedValue = document.querySelector("#progress-value").value;
				document.querySelector(".progress-bar-striped > div").textContent = selectedValue + "%";
				document.querySelector(".progress-bar-striped > div").style.width = selectedValue + "%";
			
.progress-bar-striped 
				overflow: hidden;
				height: 20px;
				margin-bottom: 20px;
				background-color: #f5f5f5;
				border-radius: 4px;
				-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
				-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
				box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
			
			.progress-bar-striped > div 
				background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
				background-size: 40px 40px;
				float: left;
				width: 0%;
				height: 100%;
				font-size: 12px;
				line-height: 20px;
				color: #ffffff;
				text-align: center;
				-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
				-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
				box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
				-webkit-transition: width 3s ease;
				-moz-transition: width 3s ease;
				-o-transition: width 3s ease;
				transition: width 3s ease;
				animation: progress-bar-stripes 2s linear infinite;
				background-color: #288ade;
			
			.progress-bar-striped p
				margin: 0;
			
			
			@keyframes progress-bar-stripes 

				0% 
					background-position: 40px 0;
				
				100% 
					background-position: 0 0;
				
			
<div class="progress-bar-striped">
			<div style="width: 100%;"><b><p>100%</p></b></div>
		</div>
		<div>
			<input id="progress-value" type="number" placeholder="Enter desired percentage" min="0" max="100" value="7" />
			<input type="button" value="Change" onclick="change()"/>
		</div>

【讨论】:

这是更好的答案。如果宽度增加,接受的只会为进度条设置动画。如果您遇到用户可以返回的情况,则需要为两个方向设置动画,这很容易通过 transition: width 2s ease 和 2 个 div 完成。【参考方案3】:

这是一个关于纯 CSS 的单个 div 提案

#progressBar 
    height: 3px;
    position: fixed;
    opacity: 0.5;
    z-index:2;
    background: #DDDDDD;
    overflow: hidden;
    animation: progressBar 1.5s ease-in-out;
    animation-iteration-count: infinite;
    animation-fill-mode:both;
    bottom:0;
    content:"";
    display:block;
    left:0;



@keyframes progressBar 
    0%  left:0;width: 0; 
    50%  left:0;width: 100%; 
    100% left:100%;width: 0

【讨论】:

动画css进度条而不在更新之间跳转?

...时间】:2015-02-1202:52:31【问题描述】:我正在我的网站上使用它……<progressid=\'video-progress\'min=\'0\'max=\'100\'value=\'\'></progress>这是元素的整个样式……#vid 查看详情

css3彩色进度条加载动画带进度百分比

在线演示       本地下载 查看详情

css3loading进度条加载动画特效

在线演示本地下载 查看详情

使用 CSS 慢慢地用颜色填充 SVG 图像(如进度条)

】使用CSS慢慢地用颜色填充SVG图像(如进度条)【英文标题】:SlowlyfillSVGimagewithcolor(likeprogressbar)usingCSS【发布时间】:2015-01-1110:37:26【问题描述】:我想用颜色而不是进度条填充svg图像。我将使用它来制作动画信息图。Filltheimag... 查看详情

与 NSTimer 一起使用时显示刻度动画而不是平滑动画的进度条

】与NSTimer一起使用时显示刻度动画而不是平滑动画的进度条【英文标题】:progressbarshowingtickanimationinsteadofsmoothanimationwhenusedwithNSTimer【发布时间】:2014-05-1108:02:33【问题描述】:我正在使用NSTimer和循环进度条作为倒数计时器,... 查看详情

如何使用逆时针动画显示自定义圆形进度条?

】如何使用逆时针动画显示自定义圆形进度条?【英文标题】:HowtodisplaycustomcircularprogressbarwithAnti-Clockwiseanimation?【发布时间】:2014-07-0313:54:48【问题描述】:我正在使用与测验相关的应用程序。此处将显示自定义圆形进度条,... 查看详情

动画 jQuery 进度条

...ttp://www.cssflow.com/snippets/animated-progress-bar/demo但是进度条不使用jquery并且教程没有告诉您如何将多个按钮链接到进度条。所以搜索后我找到了这个教程:http://www.jcode. 查看详情

如何使用 jquery 和百分比单位为进度条设置一次动画?

】如何使用jquery和百分比单位为进度条设置一次动画?【英文标题】:Howtoanimateaprogressbarwithjqueryandpercentunitjustonce?【发布时间】:2021-07-3104:00:58【问题描述】:我正在尝试为我的“HTML级别”进度条设置动画。当我悬停父div时,... 查看详情

CSS 进度圈

...某些百分比,如下面的屏幕截图所示。有什么方法可以只使用CSS来做到这一点?【问题讨论】:我不是在寻找脚本,而是在寻找与此相关的任何CSS3信息。那张截图来自哪个网站?如果您使用LESS,您可能对cssscript.com/pur 查看详情

QT进度条动画问题

...述】:我在QT中做了进度条,我在模拟器和移动设备中都使用过..无限进度条出现但没有动画..(无限进度不会到来)这是我写的代码QApplicationa(argc,argv);QProgressDialog*dialog=newQProgressDialog();dialog-& 查看详情

QML 中的动画进度条

...rinQML【发布时间】:2017-11-0510:10:50【问题描述】:我需要使用QMLControls2创建如下进度条:ProgressBarid:progressBarwidth:parent.width*0.80height:parent.height*0.05anchors.bottom:parent.bottomanchors.bottomMargin 查看详情

jq加载进度条动画

<!DOCTYPEhtml><htmllang="en"><head> <metacharset="UTF-8"> <title>Document</title> <styletype="text/css"> .box{ border-radius:4px; height:8px; width:100 查看详情

为啥自定义进度条在android中没有动画?

...条第1期:第一个问题是进度条只是显示而不是动画,我使用asynctask在后台从外部数据库加载大量数据。第二个问题:第二个问题是 查看详情

Flexbox 进度条动画 - 宽度不正确

...加内部文本,宽度计算就会因某种原因而不同。我尝试过使用不同的width()函数,并且尝试将每个段相加,但每次文本由于某种原因而超出宽度时。这就是我所拥有的-JS 查看详情

CSS / jQuery:动态更新的文本出现在右侧而不是圆形进度条内

...从以下资源中发现了该插件。我下载并包含了该插件,并使用了演示页面中的源代码(HTML和JS) 查看详情

Swift Progress View 动画使进度条超过 100%

...发布时间】:2017-06-0618:52:18【问题描述】:当为ProgressView使用动画时,如果我让动画用完,它完全可以正常工作,但如果我在动画仍在运行时再次尝试运行此代码,它会将100%添加到当前栏并使其运行通过酒吧。图片应该更合乎... 查看详情

html+css+js实现❤️canvas圆形水波进度条动画特效❤️(代码片段)

  🍅作者主页:Java李杨勇 🍅简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】🍅欢迎点赞👍收藏⭐留言📝  效果演示&#x... 查看详情

html+css+js实现❤️canvas圆形水波进度条动画特效❤️(代码片段)

  🍅作者主页:Java李杨勇 🍅简介:Java领域优质创作者🏆、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】🍅欢迎点赞👍收藏⭐留言📝  效果演示&#x... 查看详情