Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorysds <ysds.code@gmail.com>2020-03-04 17:51:15 +0300
committerXhmikosR <xhmikosr@gmail.com>2020-04-01 10:05:43 +0300
commitdfa017adc382c63766cd5d021bdc8f6ad1b04932 (patch)
tree27cd38310b20f60bf3b80428041c8e04fd04666a /js
parent05fb3905e696484f1c7b70b1d2160f6dd9fb4601 (diff)
Always modal scroll top to 0
Diffstat (limited to 'js')
-rw-r--r--js/src/modal.js6
-rw-r--r--js/tests/unit/modal.spec.js16
2 files changed, 10 insertions, 12 deletions
diff --git a/js/src/modal.js b/js/src/modal.js
index ca77359cab..d5f1c8c9ae 100644
--- a/js/src/modal.js
+++ b/js/src/modal.js
@@ -60,7 +60,6 @@ const EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`
const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`
const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
-const CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'
const CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'
const CLASS_NAME_BACKDROP = 'modal-backdrop'
const CLASS_NAME_OPEN = 'modal-open'
@@ -249,11 +248,10 @@ class Modal {
this._element.style.display = 'block'
this._element.removeAttribute('aria-hidden')
this._element.setAttribute('aria-modal', true)
+ this._element.scrollTop = 0
- if (this._dialog.classList.contains(CLASS_NAME_SCROLLABLE) && modalBody) {
+ if (modalBody) {
modalBody.scrollTop = 0
- } else {
- this._element.scrollTop = 0
}
if (transition) {
diff --git a/js/tests/unit/modal.spec.js b/js/tests/unit/modal.spec.js
index c5fbc3a273..52676844f4 100644
--- a/js/tests/unit/modal.spec.js
+++ b/js/tests/unit/modal.spec.js
@@ -382,40 +382,40 @@ describe('Modal', () => {
modal.show()
})
- it('should set modal body scroll top to 0 if .modal-dialog-scrollable', done => {
+ it('should set .modal\'s scroll top to 0', done => {
fixtureEl.innerHTML = [
'<div class="modal fade">',
- ' <div class="modal-dialog modal-dialog-scrollable">',
- ' <div class="modal-body"></div>',
+ ' <div class="modal-dialog">',
' </div>',
'</div>'
].join('')
const modalEl = fixtureEl.querySelector('.modal')
- const modalBody = modalEl.querySelector('.modal-body')
const modal = new Modal(modalEl)
modalEl.addEventListener('shown.bs.modal', () => {
- expect(modalBody.scrollTop).toEqual(0)
+ expect(modalEl.scrollTop).toEqual(0)
done()
})
modal.show()
})
- it('should set .modal\'s scroll top to 0 if .modal-dialog-scrollable and modal body do not exists', done => {
+ it('should set modal body scroll top to 0 if modal body do not exists', done => {
fixtureEl.innerHTML = [
'<div class="modal fade">',
- ' <div class="modal-dialog modal-dialog-scrollable">',
+ ' <div class="modal-dialog">',
+ ' <div class="modal-body"></div>',
' </div>',
'</div>'
].join('')
const modalEl = fixtureEl.querySelector('.modal')
+ const modalBody = modalEl.querySelector('.modal-body')
const modal = new Modal(modalEl)
modalEl.addEventListener('shown.bs.modal', () => {
- expect(modalEl.scrollTop).toEqual(0)
+ expect(modalBody.scrollTop).toEqual(0)
done()
})