mirror of
https://github.com/twbs/bootstrap.git
synced 2025-02-26 23:54:23 +01:00
add js support for carousel indicators
This commit is contained in:
parent
e9eff0cbff
commit
7f9ff0ba5b
26
docs/assets/js/bootstrap-carousel.js
vendored
26
docs/assets/js/bootstrap-carousel.js
vendored
@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
var Carousel = function (element, options) {
|
var Carousel = function (element, options) {
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
|
this.$indicators = this.$element.find('.carousel-indicators')
|
||||||
this.options = options
|
this.options = options
|
||||||
this.options.pause == 'hover' && this.$element
|
this.options.pause == 'hover' && this.$element
|
||||||
.on('mouseenter', $.proxy(this.pause, this))
|
.on('mouseenter', $.proxy(this.pause, this))
|
||||||
@ -44,13 +45,17 @@
|
|||||||
return this
|
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) {
|
, to: function (pos) {
|
||||||
var $active = this.$element.find('.item.active')
|
var activeIndex = this.getActiveIndex()
|
||||||
, children = $active.parent().children()
|
|
||||||
, activePos = children.index($active)
|
|
||||||
, that = this
|
, that = this
|
||||||
|
|
||||||
if (pos > (children.length - 1) || pos < 0) return
|
if (pos > (this.$items.length - 1) || pos < 0) return
|
||||||
|
|
||||||
if (this.sliding) {
|
if (this.sliding) {
|
||||||
return this.$element.one('slid', function () {
|
return this.$element.one('slid', function () {
|
||||||
@ -58,11 +63,11 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activePos == pos) {
|
if (activeIndex == pos) {
|
||||||
return this.pause().cycle()
|
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) {
|
, pause: function (e) {
|
||||||
@ -92,6 +97,7 @@
|
|||||||
, isCycling = this.interval
|
, isCycling = this.interval
|
||||||
, direction = type == 'next' ? 'left' : 'right'
|
, direction = type == 'next' ? 'left' : 'right'
|
||||||
, fallback = type == 'next' ? 'first' : 'last'
|
, fallback = type == 'next' ? 'first' : 'last'
|
||||||
|
, $nextIndicator
|
||||||
, that = this
|
, that = this
|
||||||
, e
|
, e
|
||||||
|
|
||||||
@ -107,6 +113,14 @@
|
|||||||
|
|
||||||
if ($next.hasClass('active')) return
|
if ($next.hasClass('active')) return
|
||||||
|
|
||||||
|
if (this.$indicators.length) {
|
||||||
|
this.$indicators.find('.active').removeClass('active')
|
||||||
|
this.$element.one('slid', function () {
|
||||||
|
$nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
||||||
|
$nextIndicator && $nextIndicator.addClass('active')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if ($.support.transition && this.$element.hasClass('slide')) {
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
||||||
this.$element.trigger(e)
|
this.$element.trigger(e)
|
||||||
if (e.isDefaultPrevented()) return
|
if (e.isDefaultPrevented()) return
|
||||||
|
3
docs/assets/js/bootstrap-modal.js
vendored
3
docs/assets/js/bootstrap-modal.js
vendored
@ -60,8 +60,7 @@
|
|||||||
that.$element.appendTo(document.body) //don't move modals dom position
|
that.$element.appendTo(document.body) //don't move modals dom position
|
||||||
}
|
}
|
||||||
|
|
||||||
that.$element
|
that.$element.show()
|
||||||
.show()
|
|
||||||
|
|
||||||
if (transition) {
|
if (transition) {
|
||||||
that.$element[0].offsetWidth // force reflow
|
that.$element[0].offsetWidth // force reflow
|
||||||
|
29
docs/assets/js/bootstrap.js
vendored
29
docs/assets/js/bootstrap.js
vendored
@ -289,6 +289,7 @@
|
|||||||
|
|
||||||
var Carousel = function (element, options) {
|
var Carousel = function (element, options) {
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
|
this.$indicators = this.$element.find('.carousel-indicators')
|
||||||
this.options = options
|
this.options = options
|
||||||
this.options.pause == 'hover' && this.$element
|
this.options.pause == 'hover' && this.$element
|
||||||
.on('mouseenter', $.proxy(this.pause, this))
|
.on('mouseenter', $.proxy(this.pause, this))
|
||||||
@ -305,13 +306,17 @@
|
|||||||
return this
|
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) {
|
, to: function (pos) {
|
||||||
var $active = this.$element.find('.item.active')
|
var activeIndex = this.getActiveIndex()
|
||||||
, children = $active.parent().children()
|
|
||||||
, activePos = children.index($active)
|
|
||||||
, that = this
|
, that = this
|
||||||
|
|
||||||
if (pos > (children.length - 1) || pos < 0) return
|
if (pos > (this.$items.length - 1) || pos < 0) return
|
||||||
|
|
||||||
if (this.sliding) {
|
if (this.sliding) {
|
||||||
return this.$element.one('slid', function () {
|
return this.$element.one('slid', function () {
|
||||||
@ -319,11 +324,11 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activePos == pos) {
|
if (activeIndex == pos) {
|
||||||
return this.pause().cycle()
|
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) {
|
, pause: function (e) {
|
||||||
@ -353,6 +358,7 @@
|
|||||||
, isCycling = this.interval
|
, isCycling = this.interval
|
||||||
, direction = type == 'next' ? 'left' : 'right'
|
, direction = type == 'next' ? 'left' : 'right'
|
||||||
, fallback = type == 'next' ? 'first' : 'last'
|
, fallback = type == 'next' ? 'first' : 'last'
|
||||||
|
, $nextIndicator
|
||||||
, that = this
|
, that = this
|
||||||
, e
|
, e
|
||||||
|
|
||||||
@ -368,6 +374,14 @@
|
|||||||
|
|
||||||
if ($next.hasClass('active')) return
|
if ($next.hasClass('active')) return
|
||||||
|
|
||||||
|
if (this.$indicators.length) {
|
||||||
|
this.$indicators.find('.active').removeClass('active')
|
||||||
|
this.$element.one('slid', function () {
|
||||||
|
$nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
||||||
|
$nextIndicator && $nextIndicator.addClass('active')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if ($.support.transition && this.$element.hasClass('slide')) {
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
||||||
this.$element.trigger(e)
|
this.$element.trigger(e)
|
||||||
if (e.isDefaultPrevented()) return
|
if (e.isDefaultPrevented()) return
|
||||||
@ -832,8 +846,7 @@
|
|||||||
that.$element.appendTo(document.body) //don't move modals dom position
|
that.$element.appendTo(document.body) //don't move modals dom position
|
||||||
}
|
}
|
||||||
|
|
||||||
that.$element
|
that.$element.show()
|
||||||
.show()
|
|
||||||
|
|
||||||
if (transition) {
|
if (transition) {
|
||||||
that.$element[0].offsetWidth // force reflow
|
that.$element[0].offsetWidth // force reflow
|
||||||
|
2
docs/assets/js/bootstrap.min.js
vendored
2
docs/assets/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1422,6 +1422,11 @@ $('#myCollapsible').on('hidden', function () {
|
|||||||
<p>The slideshow below shows a generic plugin and component for cycling through elements like a carousel.</p>
|
<p>The slideshow below shows a generic plugin and component for cycling through elements like a carousel.</p>
|
||||||
<div class="bs-docs-example">
|
<div class="bs-docs-example">
|
||||||
<div id="myCarousel" class="carousel slide">
|
<div id="myCarousel" class="carousel slide">
|
||||||
|
<ol class="carousel-indicators">
|
||||||
|
<li class="active"></li>
|
||||||
|
<li></li>
|
||||||
|
<li></li>
|
||||||
|
</ol>
|
||||||
<div class="carousel-inner">
|
<div class="carousel-inner">
|
||||||
<div class="item active">
|
<div class="item active">
|
||||||
<img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt="">
|
<img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt="">
|
||||||
|
5
docs/templates/pages/javascript.mustache
vendored
5
docs/templates/pages/javascript.mustache
vendored
@ -1352,6 +1352,11 @@ $('#myCollapsible').on('hidden', function () {
|
|||||||
<p>{{_i}}The slideshow below shows a generic plugin and component for cycling through elements like a carousel.{{/i}}</p>
|
<p>{{_i}}The slideshow below shows a generic plugin and component for cycling through elements like a carousel.{{/i}}</p>
|
||||||
<div class="bs-docs-example">
|
<div class="bs-docs-example">
|
||||||
<div id="myCarousel" class="carousel slide">
|
<div id="myCarousel" class="carousel slide">
|
||||||
|
<ol class="carousel-indicators">
|
||||||
|
<li class="active"></li>
|
||||||
|
<li></li>
|
||||||
|
<li></li>
|
||||||
|
</ol>
|
||||||
<div class="carousel-inner">
|
<div class="carousel-inner">
|
||||||
<div class="item active">
|
<div class="item active">
|
||||||
<img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt="">
|
<img src="assets/img/bootstrap-mdo-sfmoma-01.jpg" alt="">
|
||||||
|
25
js/bootstrap-carousel.js
vendored
25
js/bootstrap-carousel.js
vendored
@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
var Carousel = function (element, options) {
|
var Carousel = function (element, options) {
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
|
this.$indicators = this.$element.find('.carousel-indicators')
|
||||||
this.options = options
|
this.options = options
|
||||||
this.options.pause == 'hover' && this.$element
|
this.options.pause == 'hover' && this.$element
|
||||||
.on('mouseenter', $.proxy(this.pause, this))
|
.on('mouseenter', $.proxy(this.pause, this))
|
||||||
@ -44,13 +45,17 @@
|
|||||||
return this
|
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) {
|
, to: function (pos) {
|
||||||
var $active = this.$element.find('.item.active')
|
var activeIndex = this.getActiveIndex()
|
||||||
, children = $active.parent().children()
|
|
||||||
, activePos = children.index($active)
|
|
||||||
, that = this
|
, that = this
|
||||||
|
|
||||||
if (pos > (children.length - 1) || pos < 0) return
|
if (pos > (this.$items.length - 1) || pos < 0) return
|
||||||
|
|
||||||
if (this.sliding) {
|
if (this.sliding) {
|
||||||
return this.$element.one('slid', function () {
|
return this.$element.one('slid', function () {
|
||||||
@ -58,11 +63,11 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activePos == pos) {
|
if (activeIndex == pos) {
|
||||||
return this.pause().cycle()
|
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) {
|
, pause: function (e) {
|
||||||
@ -107,6 +112,14 @@
|
|||||||
|
|
||||||
if ($next.hasClass('active')) return
|
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')) {
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
||||||
this.$element.trigger(e)
|
this.$element.trigger(e)
|
||||||
if (e.isDefaultPrevented()) return
|
if (e.isDefaultPrevented()) return
|
||||||
|
3
js/bootstrap-modal.js
vendored
3
js/bootstrap-modal.js
vendored
@ -60,8 +60,7 @@
|
|||||||
that.$element.appendTo(document.body) //don't move modals dom position
|
that.$element.appendTo(document.body) //don't move modals dom position
|
||||||
}
|
}
|
||||||
|
|
||||||
that.$element
|
that.$element.show()
|
||||||
.show()
|
|
||||||
|
|
||||||
if (transition) {
|
if (transition) {
|
||||||
that.$element[0].offsetWidth // force reflow
|
that.$element[0].offsetWidth // force reflow
|
||||||
|
Loading…
x
Reference in New Issue
Block a user