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

Merge branch '2.2.3' into 3.0.0-wip

Conflicts:
	Makefile
	README.md
	component.json
	docs/assets/css/bootstrap-responsive.css
	docs/assets/css/bootstrap.css
	docs/assets/js/bootstrap-affix.js
	docs/assets/js/bootstrap-alert.js
	docs/assets/js/bootstrap-button.js
	docs/assets/js/bootstrap-carousel.js
	docs/assets/js/bootstrap-collapse.js
	docs/assets/js/bootstrap-dropdown.js
	docs/assets/js/bootstrap-modal.js
	docs/assets/js/bootstrap-popover.js
	docs/assets/js/bootstrap-scrollspy.js
	docs/assets/js/bootstrap-tab.js
	docs/assets/js/bootstrap-tooltip.js
	docs/assets/js/bootstrap-transition.js
	docs/assets/js/bootstrap-typeahead.js
	docs/assets/js/bootstrap.js
	docs/assets/js/bootstrap.min.js
	docs/index.html
	docs/templates/pages/base-css.mustache
	docs/templates/pages/index.mustache
	docs/templates/pages/javascript.mustache
	js/bootstrap-affix.js
	js/bootstrap-alert.js
	js/bootstrap-button.js
	js/bootstrap-carousel.js
	js/bootstrap-collapse.js
	js/bootstrap-dropdown.js
	js/bootstrap-modal.js
	js/bootstrap-popover.js
	js/bootstrap-scrollspy.js
	js/bootstrap-tab.js
	js/bootstrap-tooltip.js
	js/bootstrap-transition.js
	js/bootstrap-typeahead.js
	less/bootstrap.less
	less/responsive.less
	less/type.less
	package.json
This commit is contained in:
Mark Otto
2012-12-20 00:02:52 -08:00
28 changed files with 249 additions and 1197 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

@@ -115,8 +115,9 @@
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
}
$parent = $(selector)
$parent.length || ($parent = $this.parent())
$parent = selector && $(selector)
if (!$parent || !$parent.length) $parent = $this.parent()
return $parent
}

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

View File

@@ -97,7 +97,6 @@
, show: function () {
var $tip
, inside
, pos
, actualWidth
, actualHeight
@@ -116,19 +115,17 @@
this.options.placement.call(this, $tip[0], this.$element[0]) :
this.options.placement
inside = /in/.test(placement)
$tip
.detach()
.css({ top: 0, left: 0, display: 'block' })
.insertAfter(this.$element)
pos = this.getPosition(inside)
pos = this.getPosition()
actualWidth = $tip[0].offsetWidth
actualHeight = $tip[0].offsetHeight
switch (inside ? placement.split(' ')[1] : placement) {
switch (placement) {
case 'bottom':
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
break
@@ -193,11 +190,12 @@
return this.getTitle()
}
, getPosition: function (inside) {
return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
width: this.$element[0].offsetWidth
, height: this.$element[0].offsetHeight
})
, getPosition: function () {
var el = this.$element[0]
return $.extend({}, el.getBoundingClientRect ? el.getBoundingClientRect() : {
width: el.offsetWidth
, height: el.offsetHeight
}, this.$element.offset())
}
, getTitle: function () {

View File

@@ -172,6 +172,7 @@
, listen: function () {
this.$element
.on('focus', $.proxy(this.focus, this))
.on('blur', $.proxy(this.blur, this))
.on('keypress', $.proxy(this.keypress, this))
.on('keyup', $.proxy(this.keyup, this))
@@ -183,6 +184,7 @@
this.$menu
.on('click', $.proxy(this.click, this))
.on('mouseenter', 'li', $.proxy(this.mouseenter, this))
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
}
, eventSupported: function(eventName) {
@@ -256,9 +258,13 @@
e.preventDefault()
}
, focus: function (e) {
this.focused = true
}
, blur: function (e) {
var that = this
setTimeout(function () { that.hide() }, 150)
this.focused = false
if (!this.mousedover && this.shown) this.hide()
}
, click: function (e) {
@@ -268,10 +274,16 @@
}
, mouseenter: function (e) {
this.mousedover = true
this.$menu.find('.active').removeClass('active')
$(e.currentTarget).addClass('active')
}
, mouseleave: function (e) {
this.mousedover = false
if (!this.focused && this.shown) this.hide()
}
}