Просмотр файла wu-static/js/lightgallery/js/lg-fullscreen.js

Размер файла: 3.58Kb
  1. /*! lg-fullscreen - v1.0.0 - 2016-09-20
  2. * http://sachinchoolur.github.io/lightGallery
  3. * Copyright (c) 2016 Sachin N; Licensed GPLv3 */
  4.  
  5. (function (root, factory) {
  6. if (typeof define === 'function' && define.amd) {
  7. // AMD. Register as an anonymous module unless amdModuleId is set
  8. define([], function () {
  9. return (factory());
  10. });
  11. } else if (typeof exports === 'object') {
  12. // Node. Does not work with strict CommonJS, but
  13. // only CommonJS-like environments that support module.exports,
  14. // like Node.
  15. module.exports = factory();
  16. } else {
  17. factory();
  18. }
  19. }(this, function () {
  20.  
  21. (function($, window, document, undefined) {
  22.  
  23. 'use strict';
  24.  
  25. var defaults = {
  26. fullScreen: true
  27. };
  28.  
  29. var Fullscreen = function(element) {
  30.  
  31. // get lightGallery core plugin data
  32. this.core = $(element).data('lightGallery');
  33.  
  34. this.$el = $(element);
  35.  
  36. // extend module defalut settings with lightGallery core settings
  37. this.core.s = $.extend({}, defaults, this.core.s);
  38.  
  39. this.init();
  40.  
  41. return this;
  42. };
  43.  
  44. Fullscreen.prototype.init = function() {
  45. var fullScreen = '';
  46. if (this.core.s.fullScreen) {
  47.  
  48. // check for fullscreen browser support
  49. if (!document.fullscreenEnabled && !document.webkitFullscreenEnabled &&
  50. !document.mozFullScreenEnabled && !document.msFullscreenEnabled) {
  51. return;
  52. } else {
  53. fullScreen = '<span class="lg-fullscreen lg-icon"></span>';
  54. this.core.$outer.find('.lg-toolbar').append(fullScreen);
  55. this.fullScreen();
  56. }
  57. }
  58. };
  59.  
  60. Fullscreen.prototype.requestFullscreen = function() {
  61. var el = document.documentElement;
  62. if (el.requestFullscreen) {
  63. el.requestFullscreen();
  64. } else if (el.msRequestFullscreen) {
  65. el.msRequestFullscreen();
  66. } else if (el.mozRequestFullScreen) {
  67. el.mozRequestFullScreen();
  68. } else if (el.webkitRequestFullscreen) {
  69. el.webkitRequestFullscreen();
  70. }
  71. };
  72.  
  73. Fullscreen.prototype.exitFullscreen = function() {
  74. if (document.exitFullscreen) {
  75. document.exitFullscreen();
  76. } else if (document.msExitFullscreen) {
  77. document.msExitFullscreen();
  78. } else if (document.mozCancelFullScreen) {
  79. document.mozCancelFullScreen();
  80. } else if (document.webkitExitFullscreen) {
  81. document.webkitExitFullscreen();
  82. }
  83. };
  84.  
  85. // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode
  86. Fullscreen.prototype.fullScreen = function() {
  87. var _this = this;
  88.  
  89. $(document).on('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg', function() {
  90. _this.core.$outer.toggleClass('lg-fullscreen-on');
  91. });
  92.  
  93. this.core.$outer.find('.lg-fullscreen').on('click.lg', function() {
  94. if (!document.fullscreenElement &&
  95. !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) {
  96. _this.requestFullscreen();
  97. } else {
  98. _this.exitFullscreen();
  99. }
  100. });
  101.  
  102. };
  103.  
  104. Fullscreen.prototype.destroy = function() {
  105.  
  106. // exit from fullscreen if activated
  107. this.exitFullscreen();
  108.  
  109. $(document).off('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg');
  110. };
  111.  
  112. $.fn.lightGallery.modules.fullscreen = Fullscreen;
  113.  
  114. })(jQuery, window, document);
  115.  
  116. }));