forked from extern/egroupware
91 lines
2.6 KiB
JavaScript
91 lines
2.6 KiB
JavaScript
/*
|
|
* blueimp Gallery Fullscreen JS 1.2.0
|
|
* https://github.com/blueimp/Gallery
|
|
*
|
|
* Copyright 2013, Sebastian Tschan
|
|
* https://blueimp.net
|
|
*
|
|
* Licensed under the MIT license:
|
|
* http://www.opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/* global define, window, document */
|
|
|
|
(function (factory) {
|
|
'use strict';
|
|
if (typeof define === 'function' && define.amd) {
|
|
// Register as an anonymous AMD module:
|
|
define([
|
|
'./blueimp-helper',
|
|
'./blueimp-gallery'
|
|
], factory);
|
|
} else {
|
|
// Browser globals:
|
|
factory(
|
|
window.blueimp.helper || window.jQuery,
|
|
window.blueimp.Gallery
|
|
);
|
|
}
|
|
}(function ($, Gallery) {
|
|
'use strict';
|
|
|
|
$.extend(Gallery.prototype.options, {
|
|
// Defines if the gallery should open in fullscreen mode:
|
|
fullScreen: false
|
|
});
|
|
|
|
var initialize = Gallery.prototype.initialize,
|
|
close = Gallery.prototype.close;
|
|
|
|
$.extend(Gallery.prototype, {
|
|
|
|
getFullScreenElement: function () {
|
|
return document.fullscreenElement ||
|
|
document.webkitFullscreenElement ||
|
|
document.mozFullScreenElement ||
|
|
document.msFullscreenElement;
|
|
},
|
|
|
|
requestFullScreen: function (element) {
|
|
if (element.requestFullscreen) {
|
|
element.requestFullscreen();
|
|
} else if (element.webkitRequestFullscreen) {
|
|
element.webkitRequestFullscreen();
|
|
} else if (element.mozRequestFullScreen) {
|
|
element.mozRequestFullScreen();
|
|
} else if (element.msRequestFullscreen) {
|
|
element.msRequestFullscreen();
|
|
}
|
|
},
|
|
|
|
exitFullScreen: function () {
|
|
if (document.exitFullscreen) {
|
|
document.exitFullscreen();
|
|
} else if (document.webkitCancelFullScreen) {
|
|
document.webkitCancelFullScreen();
|
|
} else if (document.mozCancelFullScreen) {
|
|
document.mozCancelFullScreen();
|
|
} else if (document.msExitFullscreen) {
|
|
document.msExitFullscreen();
|
|
}
|
|
},
|
|
|
|
initialize: function () {
|
|
initialize.call(this);
|
|
if (this.options.fullScreen && !this.getFullScreenElement()) {
|
|
this.requestFullScreen(this.container[0]);
|
|
}
|
|
},
|
|
|
|
close: function () {
|
|
if (this.getFullScreenElement() === this.container[0]) {
|
|
this.exitFullScreen();
|
|
}
|
|
close.call(this);
|
|
}
|
|
|
|
});
|
|
|
|
return Gallery;
|
|
}));
|