<pre class="prettyprint linenums">$(".alert-message").alert('close')</pre>
<h3>Events</h3>
<p>Bootstrap's alert class exposes a few events for hooking into alert functionality. </p>
- <table class="zebra-striped">
+ <table class="bordered-table striped-table">
<thead>
<tr>
<th style="width: 150px;">Event</th>
<div class="span9 columns">
<h3>Using bootstrap-carousel.js</h3>
<pre class="prettyprint linenums">$('.carousel').carousel()</pre>
- <h3>Markup</h3>
+ <h3>Options</h3>
+ <table class="bordered-table striped-table">
+ <thead>
+ <tr>
+ <th style="width: 100px;">Name</th>
+ <th style="width: 50px;">type</th>
+ <th style="width: 50px;">default</th>
+ <th>description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>interval</td>
+ <td>number</td>
+ <td>5000</td>
+ <td>The amount of type to delay between automatically cycling an item.</td>
+ </tr>
+ </tbody>
+ </table>
+ <h3>Markup</h3>
<p>Data attributes are integral to the carousel plugin. Check out the example code below for the various markup types.</p>
<pre class="prettyprint linenums">
<div class="thumbnail carousel">
<!-- items -->
- <div class="carousel-inner">
- <div class="item active">
- <img src="http://placehold.it/1100x350">
- <div class="caption">
- <h5>Thumbnail label</h5>
- <p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. </p>
- </div>
- </div>
-
- <div class="item">
- <img src="http://placehold.it/1100x350">
- <div class="caption">
- <h5>Thumbnail label</h5>
- <p>Donec id elit non mi porta gravida at eget metus.</p>
- </div>
- </div>
- </div>
+ <div class="carousel-inner">…</div>
<!-- navigation -->
<a class="nav" href="#myCarousel" data-slide="next">&lt;</a>
</div>
</pre>
+<h3>Methods</h3>
+<h4>.carousel(options)</h4>
+<p>Initializes the carousel with an optional options <code>object</code> and starts cycling through items.</p>
+<pre class="prettyprint linenums">
+$('.myCarousel').carousel({
+ interval: 2000
+})</pre>
+<h4>.carousel('cycle')</h4>
+<p>Cycles through the carousel items from left to right.</p>
+<h4>.carousel('pause')</h4>
+<p>Stops the carousel from cycling through items.</p>
+<h4>.carousel('prev')</h4>
+<p>Cycles to the previous item.</p>
+<h4>.carousel('next')</h4>
+<p>Cycles to the next item.</p>
<h3>Demo</h3>
<!-- carousel -->
btn.button('reset')
}, 3000)
})
+
+ // carousel demo
+ $('#myCarousel').carousel()
})
</script>
</body>
/* CAROUSEL CLASS DEFINITION
* ========================= */
- var Carousel = function (element) {
+ var Carousel = function (element, options) {
this.$element = $(element)
+ this.options = $.extend({}, $.fn.carousel.defaults, options)
+ this.options.slide && this.slide(this.options.slide)
}
Carousel.prototype = {
cycle: function () {
this.interval = setInterval($.proxy(this.next, this), 5000)
+ return this
}
, pause: function () {
clearInterval(this.interval)
+ return this
}
, next: function () {
- this.slide('next')
+ return this.slide('next')
}
, prev: function () {
- this.slide('prev')
+ return this.slide('prev')
}
, slide: function (type) {
var $active = this.$element.find('.active')
, $next = $active[type]()
+ , isCycling = this.interval
, direction = type == 'next' ? 'left' : 'right'
, fallback = type == 'next' ? 'first' : 'last'
, that = this
+ isCycling && this.pause()
+
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
if (!$.support.transition && this.$element.hasClass('slide')) {
$active.removeClass(['active', direction].join(' '))
})
}
+
+ isCycling && this.cycle()
+
+ return this
}
}
return this.each(function () {
var $this = $(this)
, data = $this.data('carousel')
- if (!data) $this.data('carousel', (data = new Carousel(this)))
- if (typeof option == 'string') data[option]()
+ , options = typeof option == 'object' && option
+ if (!data) $this.data('carousel', (data = new Carousel(this, options)))
+ if (typeof option == 'string' || (option = options.slide)) data[option]()
+ else data.cycle()
})
}
+ $.fn.carousel.defaults = {
+ interval: 5000
+ }
+
$.fn.carousel.Constructor = Carousel
$('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
var $this = $(this)
, $target = $($this.attr('data-target') || $this.attr('href'))
-
- $target.carousel($this.attr('data-slide'))
+ , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
+ $target.carousel(options)
})
})