JavaScript實現(xiàn)頁面全屏展示功能
最近做一個網(wǎng)頁項目,用戶要求可以全屏展示,進入系統(tǒng)后隱藏地址欄,于是乎,經(jīng)過調(diào)研就選擇了全屏API,即便如此還是遇到了一些問題,總結(jié)一下,寫下此篇文章,以免以后再遇到相同的問題。
在JavaScript中,實現(xiàn)頁面全屏展示主要依賴于HTML5的Fullscreen API,這是一個相對較新的技術(shù),因此在舊版本的瀏覽器上可能不受支持,現(xiàn)代瀏覽器支出如下。

檢查瀏覽器是否支持Fullscreen API
在嘗試使用Fullscreen API之前,最好先檢查瀏覽器是否支持它。雖然現(xiàn)代瀏覽器普遍支持,但檢查總是好的做法。
if (document.fullscreenEnabled ||
document.mozFullScreenEnabled ||
document.webkitFullscreenEnabled ||
document.msFullscreenEnabled) {
// 支持全屏
} else {
// 不支持全屏
}
全屏模式
獲取Element節(jié)點,然后使用requestFullscreen方法,可以使得這個節(jié)點全屏,全屏模式的具體實現(xiàn)可能因瀏覽器而異,所以要做不同瀏覽器處理。
const openFullScreen = () => {
const full = document.getElementById('fullscreen')
if (full.RequestFullScreen) {
full.RequestFullScreen()
} else if (full.mozRequestFullScreen) {
full.mozRequestFullScreen()
} else if (full.webkitRequestFullScreen) {
full.webkitRequestFullScreen()
} else if (full.msRequestFullscreen) {
full.msRequestFullscreen()
}
}
退出全屏模式
退出全屏模式可以通過調(diào)用document.exitFullscreen()方法實現(xiàn)。這個方法會嘗試讓當前處于全屏模式的元素退出全屏。用戶手動按下ESC鍵,也可以退出全屏鍵。
const exitFullScreen = () => {
if (document.exitFullScreen) {
document.exitFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
}
獲取全屏元素
document.fullscreenElement屬性返回正處于全屏狀態(tài)的Element節(jié)點,如果當前沒有節(jié)點處于全屏狀態(tài),則返回null??梢酝ㄟ^此方法判斷是否在全屏狀態(tài)。
const fullscreenElement = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;
注意事項
想要全屏的元素都應該在這個Element節(jié)點下面,否則的話全屏時不會展示。如下圖的html結(jié)構(gòu),點擊單開彈框依然無法在全屏模式下看到彈窗,推出全屏時會看到彈窗已經(jīng)出現(xiàn)。如果想避免這種莫名的問題,可以把document.getElementById('fullscreen') 改成document.documentElement,讓整個HTML全屏。

requestFullscreen方法只能是用戶主動觸發(fā)才可以,如果想在頁面加載時通過js調(diào)用方法或者是觸發(fā)click事件觸發(fā),我勸你還是放棄吧,在控制臺出現(xiàn)如下警告:

刷新頁面也會自動退出全屏模式;
如果想改變?nèi)翣顟B(tài)時的樣式,首先可以在全屏時添加一個calss,此外也可以使用:full-screen偽類,大部分瀏覽器都支持,檢查全屏時元素,也是有使用:full-screen偽類的。

到此這篇關(guān)于JavaScript實現(xiàn)頁面全屏展示功能的文章就介紹到這了,更多相關(guān)JavaScript頁面全屏展示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript函數(shù)的節(jié)流[throttle]與防抖[debounce]
這篇文章主要介紹了javascript函數(shù)的節(jié)流[throttle]與防抖[debounce ],詳細的介紹了節(jié)流與防抖的原理和示例,具有一定的參考價值,有興趣的可以了解一下2017-11-11

