使用jQuery动画Bootstrap进度条宽度
我想在2.5秒内将进度条的宽度从0%设置为70%。 但是,下面的代码会在2.5秒延迟后立即将宽度更改为70%。 我错过了什么?
$(".progress-bar").animate({ width: "70%" }, 2500);
JSFiddle: http : //jsfiddle.net/WEYKL/
问题在于默认的Bootstrap过渡效果,它会为width
属性的任何更新设置动画。
如果你通过压制相应的样式来关闭它,它将正常工作,例如:
.progress-bar { -webkit-transition: none !important; transition: none !important; }
演示: http : //jsfiddle.net/WEYKL/1/
如果使用bootstrap进度条,那非常容易 ,
只将atria-valuenow =“percent_required%”添加到带有“progress-bar”类的div,如下所示:
接下来,在脚本上:
重新加载,开始!
因此,通过CSS或jQuery调整转换效果更有意义。
.progress-bar { -webkit-transition: width 2.5s ease; transition: width 2.5s ease; }
只需更改宽度值即可。
$(".progress-bar").css('width', '70%');
你可以通过添加:
.progress .progress-bar { transition: unset; }
var delay = 500; $(".progress-bar").each(function(i) { $(this).delay(delay * i).animate({ width: $(this).attr('aria-valuenow') + '%' }, delay); $(this).prop('Counter', 0).animate({ Counter: $(this).text() }, { duration: delay, // easing: 'swing', step: function(now) { $(this).text(Math.ceil(now) + '%'); } }); });
.progress { margin-bottom: 20px; } .progress-bar { width: 0; } .bg-purple { background-color: #825CD6 !important; } .progress .progress-bar { transition: unset; }
Bootstrap 4 Progress Bars