summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lightbox.js4
-rw-r--r--src/overlay.js6
-rw-r--r--src/shadow.js9
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);
+ }
}