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,