diff --git a/packages/material-ui/src/Modal/Modal.test.js b/packages/material-ui/src/Modal/Modal.test.js index 71e8051dda4799..d91ad8007986e9 100644 --- a/packages/material-ui/src/Modal/Modal.test.js +++ b/packages/material-ui/src/Modal/Modal.test.js @@ -632,11 +632,11 @@ describe('', () => { }; const wrapper = mount(); - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); wrapper.setProps({ open: true }); - assert.strictEqual(document.body.parentElement.style.overflow, 'hidden'); + assert.strictEqual(document.body.style.overflow, 'hidden'); wrapper.setProps({ open: false }); - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); }); it('should open and close with Transitions', done => { @@ -661,17 +661,17 @@ describe('', () => { let wrapper; const onEntered = () => { - assert.strictEqual(document.body.parentElement.style.overflow, 'hidden'); + assert.strictEqual(document.body.style.overflow, 'hidden'); wrapper.setProps({ open: false }); }; const onExited = () => { - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); done(); }; wrapper = mount(); - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); wrapper.setProps({ open: true }); }); }); @@ -723,23 +723,23 @@ describe('', () => { let wrapper; const onEntered = () => { - assert.strictEqual(document.body.parentElement.style.overflow, 'hidden'); + assert.strictEqual(document.body.style.overflow, 'hidden'); wrapper.setProps({ open: false }); }; const onExited = () => { - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); done(); }; const onExiting = () => { - assert.strictEqual(document.body.parentElement.style.overflow, 'hidden'); + assert.strictEqual(document.body.style.overflow, 'hidden'); }; wrapper = mount( , ); - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); wrapper.setProps({ open: true }); }); @@ -766,23 +766,23 @@ describe('', () => { let wrapper; const onEntered = () => { - assert.strictEqual(document.body.parentElement.style.overflow, 'hidden'); + assert.strictEqual(document.body.style.overflow, 'hidden'); wrapper.setProps({ open: false }); }; const onExited = () => { - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); done(); }; const onExiting = () => { - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); }; wrapper = mount( , ); - assert.strictEqual(document.body.parentElement.style.overflow, ''); + assert.strictEqual(document.body.style.overflow, ''); wrapper.setProps({ open: true }); }); }); diff --git a/packages/material-ui/src/Modal/ModalManager.js b/packages/material-ui/src/Modal/ModalManager.js index 2cbf3c8c66058d..9d0e9982b493de 100644 --- a/packages/material-ui/src/Modal/ModalManager.js +++ b/packages/material-ui/src/Modal/ModalManager.js @@ -64,7 +64,10 @@ function handleContainer(containerInfo, props) { // Improve Gatsby support // https://css-tricks.com/snippets/css/force-vertical-scrollbar/ const parent = container.parentElement; - const scrollContainer = parent.nodeName === 'HTML' ? parent : container; + const scrollContainer = + parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' + ? parent + : container; restoreStyle.push({ value: scrollContainer.style.overflow,