diff options
| -rw-r--r-- | src/lightbox.js | 4 | ||||
| -rw-r--r-- | src/overlay.js | 6 | ||||
| -rw-r--r-- | src/shadow.js | 9 |
3 files changed, 11 insertions, 8 deletions
diff --git a/src/lightbox.js b/src/lightbox.js index 1a93a53..36eccb8 100644 --- a/src/lightbox.js +++ b/src/lightbox.js @@ -66,9 +66,8 @@ export default class LightBox { this.shadows[image.id] = shadow; } + if (!document.body.contains(shadow.element)) shadow.placeItself(); shadow.open(); - - this.overlay.add(shadow); this.overlay.show(); } @@ -79,6 +78,7 @@ export default class LightBox { shadow.close(); this.overlay.hide(); + shadow.destroyItself(); } closeAll() { diff --git a/src/overlay.js b/src/overlay.js index c5dd853..5c73b95 100644 --- a/src/overlay.js +++ b/src/overlay.js @@ -17,12 +17,6 @@ export default class Overlay { return this; } - add(element) { - this.element.innerHTML = ''; - this.element.appendChild(element.element || element); - return this; - } - show() { this.element.style.opacity = '1'; this.element.style.zIndex = this.zIndex; diff --git a/src/shadow.js b/src/shadow.js index 57a5cd6..973125c 100644 --- a/src/shadow.js +++ b/src/shadow.js @@ -123,4 +123,13 @@ export default class Shadow { // Start the animation requestAnimationFrame(frame); } + + placeItself() { + document.body.appendChild(this.element); + } + + destroyItself() { + if (!document.body.contains(this.element)) return; + document.body.removeChild(this.element); + } } |
