DATA_TOGGLE : '[data-toggle="modal"]',
DATA_DISMISS : '[data-dismiss="modal"]',
FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
- STICKY_CONTENT : '.sticky-top',
- NAVBAR_TOGGLER : '.navbar-toggler'
+ STICKY_CONTENT : '.sticky-top'
}
/**
.css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)
})
- // Adjust navbar-toggler margin
- $(navbarToggler).each((index, element) => {
- const actualMargin = element.style.marginRight
- const calculatedMargin = $(element).css('margin-right')
- $(element)
- .data('margin-right', actualMargin)
- .css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)
- })
-
// Adjust body padding
const actualPadding = document.body.style.paddingRight
const calculatedPadding = $(document.body).css('padding-right')
}
})
- // Restore sticky content and navbar-toggler margin
- const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`))
+ // Restore sticky content
+ const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))
$(elements).each((index, element) => {
const margin = $(element).data('margin-right')
if (typeof margin !== 'undefined') {
.bootstrapModal('show')
})
- QUnit.test('should adjust the inline margin of the navbar-toggler when opening and restore when closing', function (assert) {
- assert.expect(2)
- var done = assert.async()
- var $element = $('<div class="navbar-toggler"></div>').appendTo('#qunit-fixture')
- var originalMargin = $element.css('margin-right')
-
- $('<div id="modal-test"/>')
- .on('hidden.bs.modal', function () {
- var currentMargin = $element.css('margin-right')
- assert.strictEqual(currentMargin, originalMargin, 'navbar-toggler margin should be reset after closing')
- $element.remove()
- done()
- })
- .on('shown.bs.modal', function () {
- var expectedMargin = parseFloat(originalMargin) + $(this).getScrollbarWidth() + 'px'
- var currentMargin = $element.css('margin-right')
- assert.strictEqual(currentMargin, expectedMargin, 'navbar-toggler margin should be adjusted while opening')
- $(this).bootstrapModal('hide')
- })
- .bootstrapModal('show')
- })
-
- QUnit.test('should store the original margin of the navbar-toggler in data-margin-right before showing', function (assert) {
- assert.expect(2)
- var done = assert.async()
- var $element = $('<div class="navbar-toggler"></div>').appendTo('#qunit-fixture')
- var originalMargin = '0px'
- $element.css('margin-right', originalMargin)
-
- $('<div id="modal-test"/>')
- .on('hidden.bs.modal', function () {
- assert.strictEqual(typeof $element.data('margin-right'), 'undefined', 'data-margin-right should be cleared after closing')
- $element.remove()
- done()
- })
- .on('shown.bs.modal', function () {
- assert.strictEqual($element.data('margin-right'), originalMargin, 'original navbar-toggler margin should be stored in data-margin-right')
- $(this).bootstrapModal('hide')
- })
- .bootstrapModal('show')
- })
-
QUnit.test('should ignore values set via CSS when trying to restore body padding after closing', function (assert) {
assert.expect(1)
var done = assert.async()