mirror of
https://github.com/twbs/bootstrap.git
synced 2025-02-23 18:40:03 +00:00
Merge branch 'master' of github.com:twbs/bootstrap
Conflicts: dist/js/bootstrap.min.js docs/dist/js/bootstrap.min.js
This commit is contained in:
commit
b7ab799824
8
dist/css/bootstrap-rtl.css
vendored
8
dist/css/bootstrap-rtl.css
vendored
@ -6635,6 +6635,14 @@ button.close {
|
|||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modal-scrollbar-measure {
|
||||||
|
position: absolute;
|
||||||
|
top: -9999px;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
.modal-dialog {
|
.modal-dialog {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
|
2
dist/css/bootstrap-rtl.min.css
vendored
2
dist/css/bootstrap-rtl.min.css
vendored
File diff suppressed because one or more lines are too long
7
dist/css/bootstrap.css
vendored
7
dist/css/bootstrap.css
vendored
@ -5355,6 +5355,13 @@ button.close {
|
|||||||
.modal-footer .btn-block + .btn-block {
|
.modal-footer .btn-block + .btn-block {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
.modal-scrollbar-measure {
|
||||||
|
position: absolute;
|
||||||
|
top: -9999px;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
.modal-dialog {
|
.modal-dialog {
|
||||||
width: 600px;
|
width: 600px;
|
||||||
|
2
dist/css/bootstrap.css.map
vendored
2
dist/css/bootstrap.css.map
vendored
File diff suppressed because one or more lines are too long
2
dist/css/bootstrap.min.css
vendored
2
dist/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
35
dist/js/bootstrap.js
vendored
35
dist/js/bootstrap.js
vendored
@ -796,6 +796,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|||||||
|
|
||||||
var Modal = function (element, options) {
|
var Modal = function (element, options) {
|
||||||
this.options = options
|
this.options = options
|
||||||
|
this.$body = $(document.body)
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
this.$backdrop =
|
this.$backdrop =
|
||||||
this.isShown = null
|
this.isShown = null
|
||||||
@ -829,6 +830,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|||||||
|
|
||||||
this.isShown = true
|
this.isShown = true
|
||||||
|
|
||||||
|
this.$body.addClass('modal-open')
|
||||||
|
|
||||||
|
this.setScrollbar()
|
||||||
this.escape()
|
this.escape()
|
||||||
|
|
||||||
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
||||||
@ -837,7 +841,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|||||||
var transition = $.support.transition && that.$element.hasClass('fade')
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
||||||
|
|
||||||
if (!that.$element.parent().length) {
|
if (!that.$element.parent().length) {
|
||||||
that.$element.appendTo(document.body) // don't move modals dom position
|
that.$element.appendTo(that.$body) // don't move modals dom position
|
||||||
}
|
}
|
||||||
|
|
||||||
that.$element
|
that.$element
|
||||||
@ -877,6 +881,9 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|||||||
|
|
||||||
this.isShown = false
|
this.isShown = false
|
||||||
|
|
||||||
|
this.$body.removeClass('modal-open')
|
||||||
|
|
||||||
|
this.resetScrollbar()
|
||||||
this.escape()
|
this.escape()
|
||||||
|
|
||||||
$(document).off('focusin.bs.modal')
|
$(document).off('focusin.bs.modal')
|
||||||
@ -934,7 +941,7 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|||||||
var doAnimate = $.support.transition && animate
|
var doAnimate = $.support.transition && animate
|
||||||
|
|
||||||
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
||||||
.appendTo(document.body)
|
.appendTo(this.$body)
|
||||||
|
|
||||||
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
||||||
if (e.target !== e.currentTarget) return
|
if (e.target !== e.currentTarget) return
|
||||||
@ -969,6 +976,26 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Modal.prototype.setScrollbar = function () {
|
||||||
|
if (document.body.clientHeight <= window.innerHeight) return
|
||||||
|
var scrollbarWidth = this.measureScrollbar()
|
||||||
|
var bodyPad = parseInt(this.$body.css('padding-right') || 0)
|
||||||
|
if (scrollbarWidth) this.$body.css('padding-right', bodyPad + scrollbarWidth)
|
||||||
|
}
|
||||||
|
|
||||||
|
Modal.prototype.resetScrollbar = function () {
|
||||||
|
this.$body.css('padding-right', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
Modal.prototype.measureScrollbar = function () { // thx walsh
|
||||||
|
var scrollDiv = document.createElement('div')
|
||||||
|
scrollDiv.className = 'modal-scrollbar-measure'
|
||||||
|
this.$body.append(scrollDiv)
|
||||||
|
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
|
||||||
|
this.$body[0].removeChild(scrollDiv)
|
||||||
|
return scrollbarWidth
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// MODAL PLUGIN DEFINITION
|
// MODAL PLUGIN DEFINITION
|
||||||
// =======================
|
// =======================
|
||||||
@ -1017,10 +1044,6 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document)
|
|
||||||
.on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
|
|
||||||
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
|
|
||||||
|
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
|
2
dist/js/bootstrap.min.js
vendored
2
dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
2
docs/assets/css/docs.min.css
vendored
2
docs/assets/css/docs.min.css
vendored
File diff suppressed because one or more lines are too long
2
docs/assets/js/customize.min.js
vendored
2
docs/assets/js/customize.min.js
vendored
File diff suppressed because one or more lines are too long
4
docs/assets/js/raw-files.min.js
vendored
4
docs/assets/js/raw-files.min.js
vendored
File diff suppressed because one or more lines are too long
2
docs/dist/css/bootstrap-rtl.min.css
vendored
2
docs/dist/css/bootstrap-rtl.min.css
vendored
File diff suppressed because one or more lines are too long
2
docs/dist/css/bootstrap.css.map
vendored
2
docs/dist/css/bootstrap.css.map
vendored
File diff suppressed because one or more lines are too long
2
docs/dist/css/bootstrap.min.css
vendored
2
docs/dist/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
2
docs/dist/js/bootstrap.min.js
vendored
2
docs/dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
35
js/modal.js
35
js/modal.js
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
var Modal = function (element, options) {
|
var Modal = function (element, options) {
|
||||||
this.options = options
|
this.options = options
|
||||||
|
this.$body = $(document.body)
|
||||||
this.$element = $(element)
|
this.$element = $(element)
|
||||||
this.$backdrop =
|
this.$backdrop =
|
||||||
this.isShown = null
|
this.isShown = null
|
||||||
@ -48,6 +49,9 @@
|
|||||||
|
|
||||||
this.isShown = true
|
this.isShown = true
|
||||||
|
|
||||||
|
this.$body.addClass('modal-open')
|
||||||
|
|
||||||
|
this.setScrollbar()
|
||||||
this.escape()
|
this.escape()
|
||||||
|
|
||||||
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
||||||
@ -56,7 +60,7 @@
|
|||||||
var transition = $.support.transition && that.$element.hasClass('fade')
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
||||||
|
|
||||||
if (!that.$element.parent().length) {
|
if (!that.$element.parent().length) {
|
||||||
that.$element.appendTo(document.body) // don't move modals dom position
|
that.$element.appendTo(that.$body) // don't move modals dom position
|
||||||
}
|
}
|
||||||
|
|
||||||
that.$element
|
that.$element
|
||||||
@ -96,6 +100,9 @@
|
|||||||
|
|
||||||
this.isShown = false
|
this.isShown = false
|
||||||
|
|
||||||
|
this.$body.removeClass('modal-open')
|
||||||
|
|
||||||
|
this.resetScrollbar()
|
||||||
this.escape()
|
this.escape()
|
||||||
|
|
||||||
$(document).off('focusin.bs.modal')
|
$(document).off('focusin.bs.modal')
|
||||||
@ -153,7 +160,7 @@
|
|||||||
var doAnimate = $.support.transition && animate
|
var doAnimate = $.support.transition && animate
|
||||||
|
|
||||||
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
||||||
.appendTo(document.body)
|
.appendTo(this.$body)
|
||||||
|
|
||||||
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
||||||
if (e.target !== e.currentTarget) return
|
if (e.target !== e.currentTarget) return
|
||||||
@ -188,6 +195,26 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Modal.prototype.setScrollbar = function () {
|
||||||
|
if (document.body.clientHeight <= window.innerHeight) return
|
||||||
|
var scrollbarWidth = this.measureScrollbar()
|
||||||
|
var bodyPad = parseInt(this.$body.css('padding-right') || 0)
|
||||||
|
if (scrollbarWidth) this.$body.css('padding-right', bodyPad + scrollbarWidth)
|
||||||
|
}
|
||||||
|
|
||||||
|
Modal.prototype.resetScrollbar = function () {
|
||||||
|
this.$body.css('padding-right', '')
|
||||||
|
}
|
||||||
|
|
||||||
|
Modal.prototype.measureScrollbar = function () { // thx walsh
|
||||||
|
var scrollDiv = document.createElement('div')
|
||||||
|
scrollDiv.className = 'modal-scrollbar-measure'
|
||||||
|
this.$body.append(scrollDiv)
|
||||||
|
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
|
||||||
|
this.$body[0].removeChild(scrollDiv)
|
||||||
|
return scrollbarWidth
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// MODAL PLUGIN DEFINITION
|
// MODAL PLUGIN DEFINITION
|
||||||
// =======================
|
// =======================
|
||||||
@ -236,8 +263,4 @@
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document)
|
|
||||||
.on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
|
|
||||||
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
|
|
||||||
|
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
@ -118,6 +118,15 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Measure scrollbar width for padding body during modal show/hide
|
||||||
|
.modal-scrollbar-measure {
|
||||||
|
position: absolute;
|
||||||
|
top: -9999px;
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
overflow: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
// Scale up the modal
|
// Scale up the modal
|
||||||
@media (min-width: @screen-sm-min) {
|
@media (min-width: @screen-sm-min) {
|
||||||
// Automatically set modal's width for larger viewports
|
// Automatically set modal's width for larger viewports
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user