1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-08-11 16:14:04 +02:00

add js support for carousel indicators

This commit is contained in:
fat
2012-12-19 23:25:25 -08:00
parent e9eff0cbff
commit 7f9ff0ba5b
8 changed files with 73 additions and 25 deletions

View File

@@ -28,6 +28,7 @@
var Carousel = function (element, options) {
this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.options.pause == 'hover' && this.$element
.on('mouseenter', $.proxy(this.pause, this))
@@ -44,13 +45,17 @@
return this
}
, getActiveIndex: function () {
this.$active = this.$element.find('.item.active')
this.$items = this.$active.parent().children()
return this.$items.index(this.$active)
}
, to: function (pos) {
var $active = this.$element.find('.item.active')
, children = $active.parent().children()
, activePos = children.index($active)
var activeIndex = this.getActiveIndex()
, that = this
if (pos > (children.length - 1) || pos < 0) return
if (pos > (this.$items.length - 1) || pos < 0) return
if (this.sliding) {
return this.$element.one('slid', function () {
@@ -58,11 +63,11 @@
})
}
if (activePos == pos) {
if (activeIndex == pos) {
return this.pause().cycle()
}
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
}
, pause: function (e) {
@@ -107,6 +112,14 @@
if ($next.hasClass('active')) return
if (this.$indicators.length) {
this.$indicators.find('.active').removeClass('active')
this.$element.one('slid', function () {
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
$nextIndicator && $nextIndicator.addClass('active')
})
}
if ($.support.transition && this.$element.hasClass('slide')) {
this.$element.trigger(e)
if (e.isDefaultPrevented()) return

View File

@@ -60,8 +60,7 @@
that.$element.appendTo(document.body) //don't move modals dom position
}
that.$element
.show()
that.$element.show()
if (transition) {
that.$element[0].offsetWidth // force reflow