我正在尝试为Twitter Bootstrap按钮创建旋转器。旋转器应该表示某些工作正在进行中(例如ajax请求)。
这是一个小例子:http://jsfiddle.net/AndrewDryga/zcX4h/1/
HTML(完整代码请参考jsfiddle):
Unknown element (no animation here!):
<p>
<button class="btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</button>
</p>
Works when width is defined:
<p>
<a class="btn btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</a>
</p>
CSS:
.spinner {
display: inline-block;
opacity: 0;
width: 0;
-webkit-transition: opacity 0.25s, width 0.25s;
-moz-transition: opacity 0.25s, width 0.25s;
-o-transition: opacity 0.25s, width 0.25s;
transition: opacity 0.25s, width 0.25s;
}
/* ... */
.has-spinner.active .spinner {
opacity: 1;
width: auto; /* This doesn't work, just fix for unkown width elements */
}
/* ... */
.has-spinner.btn.active .spinner {
width: 16px;
}
.has-spinner.btn-large.active .spinner {
width: 19px;
}
交易是这样的,CSS中的“margin:auto”不能为所有元素产生预期的动画和旋转器宽度,应该通过CSS定义所有元素的旋转器宽度。是否有任何方法解决这个问题?此外,也许有更好的方法来对齐/显示旋转器吗?
当显示旋转器时,我应该调整按钮填充并使其不改变按钮宽度,或者可以接受宽度发生变化的按钮吗?(如果我将其放在某个地方作为代码片段)