aboutsummaryrefslogtreecommitdiff
path: root/src/Plugins/CloseButton.js
blob: ca12e613c9d04d7cae9fbef8abdbccfc175a6d8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
 * @author Victor Häggqvist
 * @since 2016-01-14
 */


export class CloseButton {

    constructor() {
        this.element = document.createElement('a');
        this.element.id = 'imagelightbox-close';
        this.element.innerHTML = 'Close';
    }

    register(lightbox) {
        this.lightbox = lightbox;
        lightbox.addOnStartListener(this.showButton.bind(this));
        lightbox.addOnEndListener(this.hideButton.bind(this));
    }

    showButton() {
        ['click', 'touchend'].forEach(name => {
            this.element.addEventListener(name, this.exitLightbox.bind(this));
        });

        document.body.appendChild(this.element);

        //$('<a href="#" id="imagelightbox-close">Close</a>').appendTo('body')
        //    .on('click touchend', function(){ $(this).remove(); instance.quitImageLightbox(); return false; });
    }

    hideButton() {
        document.body.removeChild(this.element);
    }

    exitLightbox() {
        this.lightbox.quitImageLightbox();
    }

}