@sammffl
2016-03-10T07:46:50.000000Z
字数 2935
阅读 628
小技巧
(function () {
var fullScreenApi = {
supportsFullScreen: false,
isFullScreen: function () {
return false;
},
requestFullScreen: function () {
},
cancelFullScreen: function () {
},
fullScreenEventName: '',
prefix: ''
},
browserPrefixes = 'webkit moz o ms khtml'.split(' ');
// check for native support
if (typeof document.cancelFullScreen != 'undefined') {
fullScreenApi.supportsFullScreen = true;
} else {
// check for fullscreen support by vendor prefix
for (var i = 0, il = browserPrefixes.length; i < il; i++) {
fullScreenApi.prefix = browserPrefixes[i];
if (typeof document[fullScreenApi.prefix + 'CancelFullScreen'] != 'undefined') {
fullScreenApi.supportsFullScreen = true;
break;
}
}
}
// update methods to do something useful
if (fullScreenApi.supportsFullScreen) {
fullScreenApi.fullScreenEventName = fullScreenApi.prefix + 'fullscreenchange';
fullScreenApi.isFullScreen = function () {
switch (this.prefix) {
case '':
return document.fullScreen;
case 'webkit':
return document.webkitIsFullScreen;
default:
return document[this.prefix + 'FullScreen'];
}
}
fullScreenApi.requestFullScreen = function (el) {
return (this.prefix === '') ? el.requestFullScreen() : el[this.prefix + 'RequestFullScreen']();
}
fullScreenApi.cancelFullScreen = function (el) {
return (this.prefix === '') ? document.cancelFullScreen() : document[this.prefix + 'CancelFullScreen']();
}
}
// jQuery plugin
if (typeof jQuery != 'undefined') {
jQuery.fn.requestFullScreen = function () {
return this.each(function () {
if (fullScreenApi.supportsFullScreen) {
fullScreenApi.requestFullScreen(this);
//setTimeout(function () {
// deferredOpen.resolve();
//}, 100);
}
});
};
jQuery.fn.cancelFullScreen = function () {
return this.each(function () {
if (fullScreenApi.supportsFullScreen) {
fullScreenApi.cancelFullScreen(this);
/*setTimeout(function () {
deferredClose.resolve();
}, 100);*/
}
});
};
}
// export api
window.fullScreenApi = fullScreenApi;
})();
body {
background: #fff;
}
#fullScreenBtn {
float: right;
cursor: pointer;
font-family: Segoe UI, Verdana, sans-serif;
text-shadow: -3px 0 4px #fff;
color: #2fa4e7;
font-weight: bold;
}
#fullScreenBtn:hover {
text-decoration: underline;
color: #2f89ca;
}
/*button{*/
/*border:1px solid #ccc;*/
/*cursor:pointer;*/
/*display:block;*/
/*margin:auto;*/
/*position:relative;*/
/*top:100px;*/
/*}*/
.fullScreen {
/*padding-top:10%;*/
text-align: center;
background: none repeat scroll 0 0 #FFFFFF;
}
/*Mozilla proposal (dash)*/
.fullScreen:full-screen {
width: 100%;
height: 100%;
}
/* W3C proposal (no dash) */
.fullScreen:fullscreen {
width: 100%;
height: 100%;
}
/* currently working vendor prefixes */
.fullScreen:-webkit-full-screen, .fullScreen:-moz-full-screen {
width: 100%;
height: 100%;
}
:-webkit-full-screen {
width: 100%;
height: 100%;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="demo.css"/>
</head>
<body>
<button>full screen</button>
<div id="fullScreen" class="fullScreen">
<a href="#">back</a>
</div>
<script src="../bower_components/jquery/dist/jquery.js"></script>
<script src="demo.js"></script>
<script>
$("button").click(function () {
$("#fullScreen").requestFullScreen();
});
$("a").click(function () {
$("#fullScreen").cancelFullScreen();
});
</script>
</body>
</html>