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 で定義する必要があります。この問題を解決する方法はありますか? また、スピナーを整列/表示するより良い方法はありますか?
そして、ボタンのパディングで遊んで、ボタンの幅が変わらない場所、スピナーが表示されているとき、または幅を変更するボタンが大丈夫なときにそれを作る必要がありますか? (悪い場合は、スニペットとしてどこかに置きます)