gpt4 book ai didi

javascript - Bootstrap 反向动画进度条像 Github

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:12 24 4
gpt4 key购买 nike

使用迁移工具将新仓库导入 Github 时 here有一个使用 Bootstrap 3 制作的漂亮而简单的 Reverse Progress Bar 示例。我正在尝试重现此进度条。 Here到目前为止有我的成就,低于或here是一个工作示例:

  • 第一个例子是静态反向进度条
  • 第二个例子展示了动画预约进度条
  • 第三个例子是一个标准的进度条

发生的事情是 reverse-progress 条在更新百分比状态之前由于某种原因(可能是属性 background-image?)完全显示,而常规progressbar 工作正常。

进度更新函数UpdateUIReverseProgressBar有什么问题?

/**
* Bootstrap Progress Bar
* @author Loreto Parisi (loretoparisi@gmail.com)
*/
UpdateUIProgressBar = function(containerId, progress, text) {
text = text || ''
if (!$('#progressdiv').length) {
var progress = '<div id="progressdiv" class="progress"><div id="progressbardiv" class="progress-bar" role="progressbar" style="min-width:1em;width:0%;">' + text + '</div></div>'
$('#' + containerId).append(progress);
} else {
$('#progressbardiv').text(text);
$('#progressbardiv').attr('style', 'min-width: 1em;width: ' + progress + '%;');
$('#progressbardiv').attr('aria-valuenow', progress);
if (progress == 100) {
setTimeout(function() {
$("#progressdiv").remove();
}, 1000 * 2);
}
}
} //UpdateUIProgressBar

/**
* Bootstrap Reverse ProgressBar inspired to Github UI
* @author Loreto Parisi (loretoparisi@gmail.com)
*/
var UpdateUIReverseProgressBar = function(containerId, progress) {
if (!$('#revprogressdiv').length) {
var progress = '<div id="revprogressdiv" class="reverse-progress-container"><div id="revprogressdiv" class="reverse-progress-bar anim-shrink-x" role="progressbar" style="min-width:1em;width:0%;"></div></div>'
$('#' + containerId).append(progress);
} else {
$('#revprogressdiv').attr('style', 'min-width: 1em;width: ' + progress + '%;');
if (progress == 100) {
setTimeout(function() {
$("#revprogressdiv").remove();
}, 1000 * 2);
}
}
} //UpdateUIReverseProgressBar

var perc = 0,
step = 10;
var interval = setInterval(function() {
perc = perc + step;
UpdateUIReverseProgressBar('myreverseprogress', perc);
UpdateUIProgressBar('myprogress', perc);

if (perc >= 100) clearInterval(interval);
}, 1000)
.reverse-progress-container {
position: relative;
height: 3px;
background-color: #e5e9eb;
background-image: -webkit-linear-gradient(left, #599e47, #306a94, #492860, #c03d32, #d17337);
background-image: linear-gradient(to right, #599e47, #306a94, #492860, #c03d32, #d17337);
background-size: 100% 3px;
}

.anim-shrink-x {
-webkit-animation-name: shrink-x;
animation-name: shrink-x;
-webkit-animation-duration: 0.3s;
animation-duration: 0.3s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-delay: 0.5s;
animation-delay: 0.5s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css.map" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap-theme.min.css" />


<div class="panel panel-default">
<div class="panel-body">
<div class="reverse-progress-container">
<div style="width: 0%; min-width: 0%; animation-duration: 5s;" class="reverse-progress-bar anim-shrink-x"></div>
</div>
</div>
</div>

<div class="panel panel-default">
<div class="panel-body">
<div class="progress" id="myreverseprogress"></div>
</div>
</div>

<div class="panel panel-default">
<div class="panel-body">
<div class="progress" id="myprogress"></div>
</div>
</div>

最佳答案

我已经为元素添加了初始宽度,请参阅代码中的注释

/**
* Bootstrap Progress Bar
* @author Loreto Parisi (loretoparisi@gmail.com)
*/
UpdateUIProgressBar = function(containerId, progress, text) {
text = text || ''
if (!$('#progressdiv').length) {
var progress = '<div id="progressdiv" class="progress"><div id="progressbardiv" class="progress-bar" role="progressbar" style="min-width:1em;width:0%;">' + text + '</div></div>'
$('#' + containerId).append(progress);
} else {
$('#progressbardiv').text(text);
$('#progressbardiv').attr('style', 'min-width: 1em;width: ' + progress + '%;');
$('#progressbardiv').attr('aria-valuenow', progress);
if (progress == 100) {
setTimeout(function() {
$("#progressdiv").remove();
}, 1000 * 2);
}
}
} //UpdateUIProgressBar

/**
* Bootstrap Reverse ProgressBar inspired to Github UI
* @author Loreto Parisi (loretoparisi@gmail.com)
*/
var UpdateUIReverseProgressBar = function(containerId, progress) {
if (!$('#revprogressdiv').length) {
/* added width 0px in the following */
var progress = '<div id="revprogressdiv" class="reverse-progress-container" style="width: 0px;"><div id="revprogressdiv" class="reverse-progress-bar anim-shrink-x" role="progressbar" style="min-width:1em;width:0%;"></div></div>'
$('#' + containerId).append(progress);
} else {
$('#revprogressdiv').attr('style', 'min-width: 1em;width: ' + progress + '%;');
if (progress == 100) {
setTimeout(function() {
$("#revprogressdiv").remove();
}, 1000 * 2);
}
}
} //UpdateUIReverseProgressBar

var perc = 0,
step = 10;
var interval = setInterval(function() {
perc = perc + step;
UpdateUIReverseProgressBar('myreverseprogress', perc);
UpdateUIProgressBar('myprogress', perc);

if (perc >= 100) clearInterval(interval);
}, 1000)
.reverse-progress-container {
position: relative;
height: 3px;
background-color: #e5e9eb;
background-image: -webkit-linear-gradient(left, #599e47, #306a94, #492860, #c03d32, #d17337);
background-image: linear-gradient(to right, #599e47, #306a94, #492860, #c03d32, #d17337);
background-size: 100% 3px;
}

.anim-shrink-x {
-webkit-animation-name: shrink-x;
animation-name: shrink-x;
-webkit-animation-duration: 0.3s;
animation-duration: 0.3s;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
-webkit-animation-timing-function: ease-in-out;
animation-timing-function: ease-in-out;
-webkit-animation-delay: 0.5s;
animation-delay: 0.5s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css.map" />
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap-theme.min.css" />


<div class="panel panel-default">
<div class="panel-body">
<div class="reverse-progress-container" >
<div style="width: 0%; min-width: 0%; animation-duration: 5s;" class="reverse-progress-bar anim-shrink-x"></div>
</div>
</div>
</div>

<div class="panel panel-default">
<div class="panel-body">
<div class="progress" id="myreverseprogress"></div>
</div>
</div>

<div class="panel panel-default">
<div class="panel-body">
<div class="progress" id="myprogress"></div>
</div>
</div>

关于javascript - Bootstrap 反向动画进度条像 Github,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43901898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com