PageSourceSearch

https://www.hbrebel.cz/js/lg-fullscreen.js

js hbrebel.cz collected 2026-10-02 11:47:00 UTC 3,045 bytes, 94 lines download raw bytes

1(function($, window, document, undefined) {
2
3    'use strict';
4
5    var defaults = {
6        fullScreen: true
7    };
8
9    var Fullscreen = function(element) {
10
11        // get lightGallery core plugin data
12        this.core = $(element).data('lightGallery');
13
14        this.$el = $(element);
15
16        // extend module defalut settings with lightGallery core settings
17        this.core.s = $.extend({}, defaults, this.core.s);
18
19        this.init();
20
21        return this;
22    };
23
24    Fullscreen.prototype.init = function() {
25        var fullScreen = '';
26        if (this.core.s.fullScreen) {
27
28            // check for fullscreen browser support
29            if (!document.fullscreenEnabled && !document.webkitFullscreenEnabled &&
30                !document.mozFullScreenEnabled && !document.msFullscreenEnabled) {
31                return;
32            } else {
33                fullScreen = '<span class="lg-fullscreen lg-icon"></span>';
34                this.core.$outer.find('.lg-toolbar').append(fullScreen);
35                this.fullScreen();
36            }
37        }
38    };
39
40    Fullscreen.prototype.requestFullscreen = function() {
41        var el = document.documentElement;
42        if (el.requestFullscreen) {
43            el.requestFullscreen();
44        } else if (el.msRequestFullscreen) {
45            el.msRequestFullscreen();
46        } else if (el.mozRequestFullScreen) {
47            el.mozRequestFullScreen();
48        } else if (el.webkitRequestFullscreen) {
49            el.webkitRequestFullscreen();
50        }
51    };
52
53    Fullscreen.prototype.exitFullscreen = function() {
54        if (document.exitFullscreen) {
55            document.exitFullscreen();
56        } else if (document.msExitFullscreen) {
57            document.msExitFullscreen();
58        } else if (document.mozCancelFullScreen) {
59            document.mozCancelFullScreen();
60        } else if (document.webkitExitFullscreen) {
61            document.webkitExitFullscreen();
62        }
63    };
64
65    // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode
66    Fullscreen.prototype.fullScreen = function() {
67        var _this = this;
68
69        $(document).on('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg', function() {
70            _this.core.$outer.toggleClass('lg-fullscreen-on');
71        });
72
73        this.core.$outer.find('.lg-fullscreen').on('click.lg', function() {
74            if (!document.fullscreenElement &&
75                !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
76                _this.requestFullscreen();
77            } else {
78                _this.exitFullscreen();
79            }
80        });
81
82    };
83
84    Fullscreen.prototype.destroy = function() {
85
86        // exit from fullscreen if activated
87        this.exitFullscreen();
88
89        $(document).off('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg');
90    };
91
92    $.fn.lightGallery.modules.fullscreen = Fullscreen;
93
94})(jQuery, window, document);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.