From 3e1eca400c30b1a034da2cddeff1448844973637 Mon Sep 17 00:00:00 2001 From: HainanZhao <1988hz@gmail.com> Date: Fri, 7 Jan 2022 17:42:26 +0800 Subject: [PATCH] Fix issue in IOS 15 Safari that bottom blank bar will show up --- src/bodyScrollLock.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bodyScrollLock.js b/src/bodyScrollLock.js index cb4b1459..edcbba2d 100644 --- a/src/bodyScrollLock.js +++ b/src/bodyScrollLock.js @@ -113,7 +113,8 @@ const setPositionFixed = () => window.requestAnimationFrame(() => { previousBodyPosition = { position: document.body.style.position, top: document.body.style.top, - left: document.body.style.left + left: document.body.style.left, + height: document.documentElement.style.height }; // Update the dom inside an animation frame @@ -121,6 +122,7 @@ const setPositionFixed = () => window.requestAnimationFrame(() => { document.body.style.position = 'fixed'; document.body.style.top = `${-scrollY}px`; document.body.style.left = `${-scrollX}px`; + document.documentElement.style.height = '100vh'; setTimeout(() => window.requestAnimationFrame(() => { // Attempt to check if the bottom bar appeared due to the position change @@ -143,6 +145,7 @@ const restorePositionSetting = () => { document.body.style.position = previousBodyPosition.position; document.body.style.top = previousBodyPosition.top; document.body.style.left = previousBodyPosition.left; + document.documentElement.style.height = previousBodyPosition.height; // Restore scroll window.scrollTo(x, y);