bootstrap-progressbar is a jQuery plugin which extends the basic twitter-bootstrap progressbar. It provides the ability to animate the progressbar by adding Javascript in combination with the preexisting css transitions. Additionally you can display the current progress information in the bar or get the value via callback.
-
include
bootstrap-progressbar.js<script type="text/javascript" src="bootstrap-progressbar.js"></script>
-
activate
bootstrap-progressbarfunctionality on progressbars of your choice$(document).ready(function() { $('.progress .bar').progressbar(); });
-
set the
dataattribute and remove thewidthstyle attribute (alternatively you can set it to 0)-
data-percentage<div class="progress progress-info"> <div class="bar" data-percentage="75"></div> </div>
-
data-amount-partanddata-amount-total<div class="progress progress-info"> <div class="bar" data-amount-part="1337" data-amount-total="9000"></div> </div>
-
-
Do i need the additional style file?
-
for the horizontal bar with no or filled text: NO
-
for any vertical bars or the horizontal bar with centered text: YES
<link rel="stylesheet/less" type="text/css" href="bootstrap-progressbar.less">
or
<link rel="stylesheet" type="text/css" href="bootstrap-progressbar.css">
-
-
Multiple trigger
You can trigger progressbar as much as you want. Just change your
dataattribute and trigger.progressbar()again. All settings made before will be kept. Please have a look at the demo page for a working example.
-
alignment
-
to use a horizontal progressbar which is align to the right you have to add
rightto theprogresselement<div class="progress right progress-info">
-
to use a vertical progressbar you have to add
verticalto theprogresselement<div class="progress vertical progress-info">
-
to use a vertical progressbar which is align to the bottom you have to add
verticalandbottomto theprogresselement<div class="progress vertical bottom progress-info">
-
-
text and delay
simply add additional parameters when activating the script
$(document).ready(function() { $('.progress .bar').progressbar({ transition_delay: 300, refresh_speed: 50, display_text: 2, use_percentage: true, update: doSomethingCool( current_percentage ) { .. }, done: doSomethingCool( ) { .. }, fail: doSomethingCool( error_message ) { .. }, }); });
transition_delayis the time in milliseconds until the animation startsrefresh_speedis the time in milliseconds which will elapse between every text refresh / callback calldisplay_textdetermines whether the text will be displayed0no text (this mode doesn't change any css / html)1text on filled bar (this mode doesn't change any css / html)2text on center (this mode changes css / html due to styling requirements)
use_percentagedetermines whether the text will be displayed in percent or amountupdatecallback where you can grab the actual percentage valuedonecallback which indicates when progressbar is filled to the given valuefailcallback where you can grab an error message when something went wrong
-
animation
to change the animation itself you have to overwrite either less or css
-
horizontal
-
less
.progress .bar { .transition(width 2s ease-in-out); }
-
css
.progress .bar { -webkit-transition: width 2s ease-in-out; -moz-transition: width 2s ease-in-out; -ms-transition: width 2s ease-in-out; -o-transition: width 2s ease-in-out; transition: width 2s ease-in-out; }
-
-
vertical
-
less
.progress.vertical .bar { .transition(height 2s ease-in-out); }
-
css
.progress.vertical .bar { -webkit-transition: height 2s ease-in-out; -moz-transition: height 2s ease-in-out; -ms-transition: height 2s ease-in-out; -o-transition: height 2s ease-in-out; transition: height 2s ease-in-out; }
-
-
- Looks like iOS Safari is flooring the width of the transition. So if you want to display text with a correct value you have to use a full bar width greater or equal 100px.
Copyright 2012 minddust.com
bootstrap-progressbar is published under Apache License, Version 2.0 (see LICENSE file).