From 2ad60bd6fe77fa006eb564c5e2fc86ab4ffd74db Mon Sep 17 00:00:00 2001 From: Chen Fengyuan Date: Sat, 6 Jun 2020 17:56:16 +0800 Subject: [PATCH] fix: reset the padding right of the body when sizing Fixed #379 --- CHANGELOG.md | 1 + src/js/handlers.js | 6 ++++++ src/js/render.js | 10 ++++++++++ src/js/viewer.js | 9 +-------- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bb2e8e..f083666 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Ignore images without the `src` attribute (#326). - Improve the `hide` method for unexpected calling (#367). +- Reset the padding right of the `body` element when resizing (#379). - Remove unnecessary `padding-right: 0px` from the `body` element when close the viewer modal (#394). ## 1.5.0 (Nov 23, 2019) diff --git a/src/js/handlers.js b/src/js/handlers.js index 4f6c51f..ae6a0ed 100644 --- a/src/js/handlers.js +++ b/src/js/handlers.js @@ -439,6 +439,12 @@ export default { return; } + if (this.fulled) { + this.close(); + this.initBody(); + this.open(); + } + this.initContainer(); this.initViewer(); this.renderViewer(); diff --git a/src/js/render.js b/src/js/render.js index 9bef6ea..d9811f6 100644 --- a/src/js/render.js +++ b/src/js/render.js @@ -29,6 +29,16 @@ export default { this.renderViewer(); }, + initBody() { + const { ownerDocument } = this.element; + const body = ownerDocument.body || ownerDocument.documentElement; + + this.body = body; + this.scrollbarWidth = window.innerWidth - ownerDocument.documentElement.clientWidth; + this.initialBodyPaddingRight = body.style.paddingRight; + this.initialBodyComputedPaddingRight = window.getComputedStyle(body).paddingRight; + }, + initContainer() { this.containerData = { width: window.innerWidth, diff --git a/src/js/viewer.js b/src/js/viewer.js index 2137126..addbf17 100644 --- a/src/js/viewer.js +++ b/src/js/viewer.js @@ -104,14 +104,7 @@ class Viewer { this.isImg = isImg; this.length = images.length; this.images = images; - - const { ownerDocument } = element; - const body = ownerDocument.body || ownerDocument.documentElement; - - this.body = body; - this.scrollbarWidth = window.innerWidth - ownerDocument.documentElement.clientWidth; - this.initialBodyPaddingRight = body.style.paddingRight; - this.initialBodyComputedPaddingRight = window.getComputedStyle(body).paddingRight; + this.initBody(); // Override `transition` option if it is not supported if (isUndefined(document.createElement(NAMESPACE).style.transition)) {