JavaScript全屏和退出全屏事件總結(jié)(附代碼)
代碼如下:
window.isflsgrn = false;//ie11以下是否進(jìn)入全屏標(biāo)志,true為全屏狀態(tài),false為非全屏狀態(tài)
window.ieIsfSceen = false;//ie11是否進(jìn)入全屏標(biāo)志,true為全屏狀態(tài),false為非全屏狀態(tài)
//跨瀏覽器返回當(dāng)前 document 是否進(jìn)入了可以請求全屏模式的狀態(tài)
function fullscreenEnable(){
var isFullscreen = document.fullscreenEnabled ||
window.fullScreen ||
document.mozFullscreenEnabled ||
document.webkitIsFullScreen;
return isFullscreen;
}
//全屏
var fScreen = function(){
var docElm = document.documentElement;
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
}
else if (docElm.msRequestFullscreen) {
docElm.msRequestFullscreen();
ieIsfSceen = true;
}
else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
}
else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}else {//對不支持全屏API瀏覽器的處理,隱藏不需要顯示的元素
window.parent.hideTopBottom();
isflsgrn = true;
$("#fsbutton").text("退出全屏");
}
}
//退出全屏
var cfScreen = function(){
if (document.exitFullscreen) {
document.exitFullscreen();
}
else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
}
else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}else {
window.parent.showTopBottom();
isflsgrn = false;
$("#fsbutton").text("全屏");
}
}
//全屏按鈕點(diǎn)擊事件
$("#fsbutton").click(function(){
var isfScreen = fullscreenEnable();
if(!isfScreen && isflsgrn == false){
if (ieIsfSceen == true) {
document.msExitFullscreen();
ieIsfSceen = false;
return;
}
fScreen();
}else{
cfScreen();
}
})
//鍵盤操作
$(document).keydown(function (event) {
if(event.keyCode == 27 && ieIsfSceen == true){
ieIsfSceen = false;
}
});
//監(jiān)聽狀態(tài)變化
if (window.addEventListener) {
document.addEventListener('fullscreenchange', function(){
if($("#fsbutton").text() == "全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
document.addEventListener('webkitfullscreenchange', function(){
if($("#fsbutton").text() == "全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
document.addEventListener('mozfullscreenchange', function(){
if($("#fsbutton").text() == "全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
document.addEventListener('MSFullscreenChange', function(){
if($("#fsbutton").text() == "全屏"){
$("#fsbutton").text("退出全屏");
}else{
$("#fsbutton").text("全屏");
}
});
}
值得注意的是 fullscreenEnabled 參數(shù),網(wǎng)上的說法不一,有的說是監(jiān)控瀏覽器是否進(jìn)入了可以請求全屏模式的狀態(tài),有的說只是一個判斷瀏覽器是否支持全屏的標(biāo)志,實(shí)際使用時也確實(shí)出現(xiàn)了問題,IE11不能識別這個屬性,需要自己單獨(dú)設(shè)置一個標(biāo)記來控制IE11當(dāng)前是否為全屏狀態(tài)。
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助~如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持!
相關(guān)文章
div+css布局的圖片連續(xù)滾動js實(shí)現(xiàn)代碼
整理一個div+css圖片連續(xù)滾動代碼,原理跟腳本之家之前發(fā)布的文章一樣。2010-05-05
如何將一個String和多個String值進(jìn)行比較思路分析
開發(fā)中我們經(jīng)常需要將一個String和多個String值進(jìn)行比較。直覺反應(yīng)是使用||符號連接多個===完成,感興趣的朋友可以了解下哈2013-04-04
在ASP.NET MVC項目中使用RequireJS庫的用法示例
這篇文章主要介紹了在ASP.NET MVC項目中使用RequireJS的用法示例,文中主要講解了網(wǎng)站項目的一些基本目錄結(jié)構(gòu)思想,并給出了一個半自動壓縮的例子,的朋友可以參考下2016-02-02
Bootstrap響應(yīng)式側(cè)邊欄改進(jìn)版
這篇文章主要為大家詳細(xì)介紹了Bootstrap響應(yīng)式側(cè)邊欄改進(jìn)版,結(jié)合導(dǎo)航條和下拉菜單進(jìn)行改進(jìn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09
javascript的字符串按引用復(fù)制和傳遞,按值來比較介紹與應(yīng)用
字符串是按引用復(fù)制和傳遞的,但是是按值來比較的;當(dāng)按值復(fù)制或傳遞時,將在計算機(jī)內(nèi)存中分配一塊空間并將原值復(fù)制到其中,需要的朋友可以參考下2012-12-12
Javascript怎樣使用SessionStorage和LocalStorage
這篇文章主要介紹了Javascript怎樣使用SessionStorage和LocalStorage,對web存儲數(shù)據(jù)感興趣的同學(xué),可以參考下2021-04-04

