forked from zxl/LaboratoryProtection
72 lines
2.8 KiB
JavaScript
72 lines
2.8 KiB
JavaScript
function setFullScreenByElement (container, canvas, keepAspectRatio) {
|
|
// set fullscreen
|
|
var setFullScreen = function (element) {
|
|
(element.webkitRequestFullscreen ||
|
|
element.requestFullscreen ||
|
|
element.mozRequestFullScreen ||
|
|
element.msRequestFullscreen).call(element)
|
|
}
|
|
|
|
// get fullscreen state
|
|
var getFullscreen = function () {
|
|
var doc = window.document;
|
|
var objFullScreen = doc.fullscreenElement || doc.mozFullScreenElement || doc.webkitFullscreenElement || doc.msFullscreenElement;
|
|
return (objFullScreen);
|
|
}
|
|
|
|
// add fullscreenchange event handle
|
|
var addEventFullscreenChange = function (callback) {
|
|
document.addEventListener("fullscreenchange", callback, false);
|
|
document.addEventListener("webkitfullscreenchange", callback, false);
|
|
document.addEventListener("mozfullscreenchange", callback, false);
|
|
document.addEventListener("MSFullscreenChange", callback, false);
|
|
}
|
|
|
|
// remove fullscreenchange event handle
|
|
var removeEventFullscreenChange = function (callback) {
|
|
document.removeEventListener("fullscreenchange", callback, false);
|
|
document.removeEventListener("webkitfullscreenchange", callback, false);
|
|
document.removeEventListener("mozfullscreenchange", callback, false);
|
|
document.removeEventListener("MSFullscreenChange", callback, false);
|
|
}
|
|
|
|
var beforeStyle = canvas.style;
|
|
var beforeWidth = parseInt(beforeStyle.width);
|
|
var beforeHeight = parseInt(beforeStyle.height);
|
|
|
|
// recv fullscreen function
|
|
var fullscreenFunc = function () {
|
|
if (getFullscreen()) {
|
|
if (keepAspectRatio) {
|
|
var ratio = Math.min(window.screen.width / beforeWidth, window.screen.height / beforeHeight);
|
|
var width = Math.floor(beforeWidth * ratio);
|
|
var height = Math.floor(beforeHeight * ratio);
|
|
|
|
canvas.style.width = width + 'px';
|
|
canvas.style.height = height + 'px';;
|
|
} else {
|
|
canvas.style.width = window.screen.width + 'px';;
|
|
canvas.style.height = window.screen.height + 'px';;
|
|
}
|
|
} else {
|
|
canvas.style.width = beforeWidth + 'px';;
|
|
canvas.style.height = beforeHeight + 'px';;
|
|
|
|
// remove this function
|
|
removeEventFullscreenChange(fullscreenFunc);
|
|
}
|
|
}
|
|
|
|
// listener fullscreen event
|
|
addEventFullscreenChange(fullscreenFunc);
|
|
|
|
// fullscreen
|
|
setFullScreen(container)
|
|
}
|
|
|
|
function setFullScreen () {
|
|
var container = document.getElementById('unity-container');
|
|
var canvas = document.getElementById('unity-canvas');
|
|
var keepAspectRatio = false;
|
|
setFullScreenByElement(container, canvas, keepAspectRatio);
|
|
} |