87 lines
2.2 KiB
JavaScript
87 lines
2.2 KiB
JavaScript
/*
|
|
* blueimp Gallery Fullscreen JS
|
|
* https://github.com/blueimp/Gallery
|
|
*
|
|
* Copyright 2013, Sebastian Tschan
|
|
* https://blueimp.net
|
|
*
|
|
* Licensed under the MIT license:
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/* global define */
|
|
|
|
;(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'
|
|
|
|
var galleryPrototype = Gallery.prototype
|
|
|
|
$.extend(galleryPrototype.options, {
|
|
// Defines if the gallery should open in fullscreen mode:
|
|
fullscreen: false
|
|
})
|
|
|
|
var initialize = galleryPrototype.initialize
|
|
var close = galleryPrototype.close
|
|
|
|
$.extend(galleryPrototype, {
|
|
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
|
|
})
|