Buttons spinner for Twitter Bootstrap 3.0
Converted existing solution for bootstrap 2.0
http://jsfiddle.net/AndrewDryga/GY6LC/
by Oleksandr Shybystyi
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
A and Button tags:
<p>
<a class="btn btn-success has-spinner">
<i class="fa fa-spinner fa-spin"></i>
Foo
</a>
</p>
<p>
<button class="btn btn-success has-spinner">
<i class="fa fa-spinner fa-spin"></i>
Foo
</button>
</p>
Diffrent sizes:
<p>
<a class="btn btn-xs btn-success has-spinner">
<i class="fa fa-spinner fa-spin"></i>
Foo
</a>
</p>
<p>
<a class="btn btn-sm btn-success has-spinner">
<i class="fa fa-spinner fa-spin"></i>
Foo
</a>
</p>
<p>
<a class="btn btn-success has-spinner">
<i class="fa fa-spinner fa-spin"></i>
Foo
</a>
</p>
<p>
<a class="btn btn-lg btn-success has-spinner">
<i class="fa fa-spinner fa-spin"></i>
Foo
</a>
</p>
Left and right positions:
<p>
<a class="btn btn-success has-spinner">
<i class="fa fa-spinner fa-spin"></i>
Foo
</a>
</p>
<p>
<a class="btn btn-success has-spinner">
Foo
<i class="fa fa-spinner fa-spin"></i>
</a>
</p>
Left and right positions in fixed width .btn:
<p>
<a class="btn btn-success has-spinner" style="width:75px">
<i class="fa fa-spinner fa-spin"></i>
Foo
</a>
</p>
<p>
<a class="btn btn-success has-spinner" style="width:75px">
Foo
<i class="fa fa-spinner fa-spin"></i>
</a>
</p>
CSS
.has-spinner .fa-spinner {
opacity: 0;
max-width: 0;
-webkit-transition: opacity 0.25s, max-width 0.45s;
-moz-transition: opacity 0.25s, max-width 0.45s;
-o-transition: opacity 0.25s, max-width 0.45s;
transition: opacity 0.25s, max-width 0.45s; /* Duration fixed since we animate additional hidden width */
}
.has-spinner.active {
cursor:progress;
}
.has-spinner.active .fa-spinner {
opacity: 1;
max-width: 50px; /* More than it will ever come, notice that this affects on animation duration */
}
JavaScript
$(function(){
$('a.has-spinner, button.has-spinner').click(function() {
$(this).toggleClass('active');
});
});