Buttons spinner for Twitter Bootstrap
by Lenggo007
HTML
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://stackpath.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css">
Unknown element (no animation here!):
<p>
<button class="btn-success has-spinner">
<span class="spinner"><span class="glyphicon-glyphicon-refresh"></span></span>
Foo
</button>
</p>
A and Button tags:
<p>
<a class="btn btn-success has-spinner">
<span class="spinner"><span class="glyphicon glyphicon-refresh"></span>
Foo</span>
</a>
</p>
<p>
bloat
<button class="btn btn-success has-spinner">
<span class="spinner"><span class="glyphicon glyphicon-refresh">Garth</span></span>
Foo
</button>
</p>
Diffrent sizes:
<p>
<a class="btn btn-mini btn-success has-spinner active">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</a>
</p>
<p>
<a class="btn btn-small btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i><i class="icon-spin icon-refresh"></i></span>
Foo
</a>
</p>
<p>
<a class="btn btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</a>
</p>
<p>
<a class="btn btn-large btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</a>
</p>
Left and right positions:
<p>
<a class="btn btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</a>
</p>
<p>
<a class="btn btn-success has-spinner">
Foo
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
</a>
</p>
Left and right positions in fixed width .btn:
<p>
<a class="btn btn-success has-spinner" style="width:50px">
<span...
CSS
@import url("//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-glyphicons.css");
.spinner {
display: inline-block;
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 .spinner {
opacity: 1;
max-width: 50px; /* More than it will ever come, notice that this affects on animation duration */
}
JavaScript
$(function(){
$('a, button').click(function() {
$(this).toggleClass('active');
});
});