?
This document uses PHP Chinese website manual Release
全屏API可以控制瀏覽器的全屏顯示,讓一個Element節(jié)點(以及子節(jié)點)占滿用戶的整個屏幕。目前各大瀏覽器的最新版本都支持這個API(包括IE11),但是使用的時候需要加上瀏覽器前綴。
方法
requestFullscreen()
exitFullscreen()
屬性
document.fullscreenElement
document.fullscreenEnabled
全屏事件
全屏狀態(tài)的CSS
參考鏈接
Element節(jié)點的requestFullscreen方法,可以使得這個節(jié)點全屏。
function launchFullscreen(element) { if(element.requestFullscreen) { element.requestFullscreen(); } else if(element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if(element.msRequestFullscreen){ element.msRequestFullscreen(); } else if(element.webkitRequestFullscreen) { element.webkitRequestFullScreen(); } } launchFullscreen(document.documentElement); launchFullscreen(document.getElementById("videoElement"));
放大一個節(jié)點時,F(xiàn)irefox和Chrome在行為上略有不同。Firefox自動為該節(jié)點增加一條CSS規(guī)則,將該元素放大至全屏狀態(tài),width: 100%; height: 100%
,而Chrome則是將該節(jié)點放在屏幕的中央,保持原來大小,其他部分變黑。為了讓Chrome的行為與Firefox保持一致,可以自定義一條CSS規(guī)則。
:-webkit-full-screen #myvideo { width: 100%; height: 100%; }
document對象的exitFullscreen方法用于取消全屏。該方法也帶有瀏覽器前綴。
function exitFullscreen() { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } } exitFullscreen();
用戶手動按下ESC鍵或F11鍵,也可以退出全屏鍵。此外,加載新的頁面,或者切換tab,或者從瀏覽器轉(zhuǎn)向其他應用(按下Alt-Tab),也會導致退出全屏狀態(tài)。
fullscreenElement屬性返回正處于全屏狀態(tài)的Element節(jié)點,如果當前沒有節(jié)點處于全屏狀態(tài),則返回null。
var fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;
fullscreenEnabled屬性返回一個布爾值,表示當前文檔是否可以切換到全屏狀態(tài)。
var fullscreenEnabled = document.fullscreenEnabled || document.mozFullScreenEnabled || document.webkitFullscreenEnabled || document.msFullscreenEnabled; if (fullscreenEnabled) { videoElement.requestFullScreen(); } else { console.log('瀏覽器當前不能全屏'); }
以下事件與全屏操作有關。
fullscreenchange事件:瀏覽器進入或離開全屏時觸發(fā)。
fullscreenerror事件:瀏覽器無法進入全屏時觸發(fā),可能是技術原因,也可能是用戶拒絕。
document.addEventListener("fullscreenchange", function( event ) { if (document.fullscreenElement) { console.log('進入全屏'); } else { console.log('退出全屏'); } });
上面代碼在發(fā)生fullscreenchange事件時,通過fullscreenElement屬性判斷,到底是進入全屏還是退出全屏。
全屏狀態(tài)下,大多數(shù)瀏覽器的CSS支持:full-screen
偽類,只有IE11支持:fullscreen
偽類。使用這個偽類,可以對全屏狀態(tài)設置單獨的CSS屬性。
:-webkit-full-screen { /* properties */ } :-moz-full-screen { /* properties */ } :-ms-fullscreen { /* properties */ } :full-screen { /*pre-spec */ /* properties */ } :fullscreen { /* spec */ /* properties */ } /* deeper elements */ :-webkit-full-screen video { width: 100%; height: 100%; }
David Walsh, Fullscreen API