淺談javascript控制HTML5的全屏操控,瀏覽器兼容的問題
如果你想使一個元素在全屏模式下展現(xiàn) (比如說 <video>),你可以調(diào)用該元素的 requestFullscreen() 方法;這個方法在 Gecko 中的實現(xiàn)是 element.mozRequestFullScreen(),在 WebKit 中為 element.webkitRequestFullscreen()。
比如一個實例:
var elem = document.getElementById("myvideo");
if (elem.requestFullscreen) {
elem.requestFullscreen(); //IE瀏覽器
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen(); //火狐瀏覽器
} else if (elem.webkitRequestFullscreen) {
elem.webkitRequestFullscreen(); //谷歌瀏覽器
}
運行到這里,Gecko 與 WebKit 兩個實現(xiàn)中出現(xiàn)了一個值得注意的區(qū)別:Gecko 會為元素自動添加 CSS 使其伸展以便鋪滿屏幕: "width: 100%; height: 100%"。 WebKit 則不會這么做;它會讓全屏的元素以原始尺寸居中到屏幕中央,其余部分變?yōu)楹谏?。為了?WebKit 下也達到與 Gecko 同樣的全屏效果,你需要手動為元素增加 CSS 規(guī)則"width: 100%; height: 100%;":
function toggleFullScreen() {
if (!document.fullscreenElement && // alternative standard method
!document.mozFullScreenElement && !document.webkitFullscreenElement) { // current working methods
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
} else if (document.documentElement.mozRequestFullScreen) {
document.documentElement.mozRequestFullScreen();
} else if (document.documentElement.webkitRequestFullscreen) {
document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (document.cancelFullScreen) {
document.cancelFullScreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
}
}
代碼首先檢查了 document 上的 fullscreenElement 屬性(也檢查了帶 -moz- 與 -webkit- 兩個前綴的)。如果該屬性為 null,則 document 當(dāng)前處于窗口模式,所以我們需要切換進全屏模式??梢酝ㄟ^調(diào)用 element.mozRequestFullScreen() 或者 webkitRequestFullscreen()來進入全屏模式,具體調(diào)用哪個還要看哪個方法可用。
如果已經(jīng)激活了全屏模式 (fullscreenElement 非空),我們調(diào)用 document.mozCancelFullScreen() 或 webkitCancelFullScreen(),同樣要依賴于我們使用了哪個瀏覽器。
以上就是小編為大家?guī)淼臏\談javascript控制HTML5的全屏操控,瀏覽器兼容的問題全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
javascript和jquery中cookie的設(shè)置方法
Cookie 是瀏覽器訪問服務(wù)器后,服務(wù)器傳給瀏覽器的一段數(shù)據(jù)。瀏覽器需要保存這段數(shù)據(jù),不會輕易刪除(保存在計算機中)。此后每次瀏覽器訪問該服務(wù)器,都必須帶上這段數(shù)據(jù)。這篇文章主要介紹了javascript和jquery中cookie的設(shè)置方法2023-07-07
解決layui上傳文件提示上傳異常,實際文件已經(jīng)上傳成功的問題
今天小編就為大家分享一篇解決layui上傳文件提示上傳異常,實際文件已經(jīng)上傳成功的問題。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
JavaScript中const、var和let區(qū)別淺析
在JavaScript中有三種聲明變量的方式:var、let、const。但是有朋友不清楚這三種聲明變量的區(qū)別,下面腳本之家小編給大家詳細介紹下js中const、var和let的區(qū)別,感興趣的朋友一起看看吧2016-10-10
JavaScript實現(xiàn)繼承的6種常用方式總結(jié)
JavaScript想實現(xiàn)繼承的目的:重復(fù)利用另外一個對象的屬性和方法。本文為大家總結(jié)了JavaScript實現(xiàn)繼承的6種常用方式,需要的可以參考一下2022-07-07
js實現(xiàn)網(wǎng)頁自動刷新可制作節(jié)日倒計時效果
這篇文章主要介紹了通過js實現(xiàn)的網(wǎng)頁自動刷新,利用此功能可制作節(jié)日倒計時效果,需要的朋友可以參考下2014-05-05

