我正在使用 Ninja Forms Multi-Part Form 插件附带的进度条,这是进度条的设置。
<div class="nf-progress-container">
<div class="nf-progress" style="width: 0%;"></div>
</div>
当我前进到多部分表单的每个后续部分时,一些 JS 或 jQuery 会更改 inlinestyle
属性的宽度,.nf-progress
div
并且进度条会随着每个步骤的完成而填充。
为了帮助您进行可视化,这是我的 UI 在样式中的样子。
我希望进度条在.nf-progress
每个步骤完成时为 div 设置动画。我以为它会像 一样简单transition: width 1s ease;
,但它不起作用(即使使用-webkit-transition
)。这是我尝试过的。
.nf-progress-container .nf-progress {
transition: width 1s ease;
-webkit-transition: width 1s ease;
}
我做了更多调查,发现您不能使用transition
css 属性为内联样式设置动画。不知道为什么,但显然你不能这样做。
我一直在挖掘,发现一篇文章让我用纯 css 动画关键帧更接近这里。
@-webkit-keyframes progress-bar {
0% { width: 0; }
}
@-moz-keyframes progress-bar {
0% { width: 0; }
}
@keyframes progress-bar {
0% { width: 0; }
}
.nf-progress-container .nf-progress {
-webkit-animation: progress-bar 1s;
-moz-animation: progress-bar 1s;
animation: progress-bar 1s;
}
这里的好处是我实际上得到了某种动画。这种方法的问题在于动画从width:0%
进度条的每一步开始。我希望元素从以前的宽度(无论它是什么)过渡到新的内联样式宽度。
有谁知道如何用 CSS 来做到这一点,或者是否有办法用 jQuery 来完成这个?