diff --git a/js/src/modal.js b/js/src/modal.js index dd61649ecce0..df29016a552d 100644 --- a/js/src/modal.js +++ b/js/src/modal.js @@ -144,6 +144,12 @@ class Modal extends BaseComponent { EventHandler.off(window, EVENT_KEY) EventHandler.off(this._dialog, EVENT_KEY) + if (this._isShown) { + document.body.classList.remove(CLASS_NAME_OPEN) + this._resetAdjustments() + this._scrollBar.reset() + } + this._backdrop.dispose() this._focustrap.deactivate() diff --git a/js/tests/unit/modal.spec.js b/js/tests/unit/modal.spec.js index 2aa0b7655c14..08b22ec5f948 100644 --- a/js/tests/unit/modal.spec.js +++ b/js/tests/unit/modal.spec.js @@ -861,6 +861,27 @@ describe('Modal', () => { expect(spyOff).toHaveBeenCalledTimes(3) expect(spyDeactivate).toHaveBeenCalled() }) + + it('should reset scrollbars when disposing a shown modal', () => { + return new Promise(resolve => { + fixtureEl.innerHTML = '