復制前言:
使用新的全屏 API,可以將用戶的注意力導向特定元素,同時隱藏背景或轉移對其他應用的注意力。因為W3C全屏規 范還未達到最終版本,所以大多數浏覽器供應商都使用唯一標識符為 API 添加前綴。在本例中,Microsoft 使用ms。最好是有單個函數可以請求所有前綴的全屏模式,類似於此處顯示的大部分示例。若要獲取更佳性能,請將 W3C API 名稱放在第一,其後跟隨設置前綴的版本。
先來幾個或詳細解釋的地址吧:
http://www.zhangxinxu.com/Wordpress/2012/10/Html5-full-screen-api-Firefox-Chrome-difference/
http://www.wufangbo.com/Html5-quanping/
http://heeroluo.Net/article/detail/97
再來個微軟開發者中心的地址:
https://msdn.microsoft.com/zh-cn/library/IE/dn265028(v=vs.85).ASPx
// Webkit (works in Safari5.1 and Chrome 15) element.webkitRequestFullScreen(); document.webkitCancelFullScreen(); 測試環境Chrome39支持document.webkitExitFullscreen() document.webkitIsFullScreen // Firefox 10+ element.mozRequestFullScreen(); document.mozCancelFullScreen(); document.mozFullScreen //IE11 element.msRequestFullscreen(); document.msExitFullscreen(); // W3C 提議 element.requestFullscreen(); document.exitFullscreen(); document.fullscreen
接下來封裝代碼:
!function(w,d){ var fs={ supportsFullScreen:false, isFullScreen:false, requestFullScreen:'', exitFullScreen:'', fullscreenchange:'', prefix:'' }, aP=['webkit','moz','ms'], //Opera 15 支持全屏是webkit內核 len=aP.length, i=0; if(d.exitFullscreen){ fs.supportsFullScreen=true }else{ for(; i<len; i++){ if(d[aP[i]+'ExitFullscreen'] d[aP[i]+'CancelFullScreen']){ fs.supportsFullScreen=true; fs.prefix=aP[i]; break } } } if(fs.supportsFullScreen){ var p=fs.prefix; fs.fullscreenchange=function(fn){ d.addEventListener(p=='ms' ? 'MSFullscreenChange' : p+'fullscreenchange',function(){ fn && fn() },false) }; fs.fullscreenchange(function(){ fs.isFullScreen=(function(p){ switch (p) { case '': return d.fullscreen; case 'webkit': return d.webkitIsFullScreen; case 'moz': return d.mozFullScreen; case 'ms': return d.msFullscreenElement ? true : false } })(p) }); fs.requestFullScreen=function(elem){ var elem=elem d.documentElement; try{ p ? elem[p+'RequestFullScreen']() : elem.requestFullScreen() //Chrome,ff,標准 }catch(e){ elem[p+'RequestFullscreen']() //elem.msRequestFullscreen } }; fs.exitFullScreen=function(){ try{ p ? d[p+'ExitFullscreen']() : d.exitFullscreen() //IE,新版chrome或標准 }catch(e){ d[p+'CancelFullScreen']() //老版Chrome 火狐 } } } w.fs=fs }(window,document);
使用方法:
<body> <div id="launch">進入全屏</div> </body> var oBtn=document.getElementById('launch'); oBtn.onclick=function(){ if(fs.supportsFullScreen){ fs.isFullScreen ? (fs.exitFullScreen(), this.innerHTML='進入全屏') : (fs.requestFullScreen(), this.innerHTML='退出全屏') }else{ alert('Sorry: Your browser does not support fullScreen prevIEw.') } }; fs.fullscreenchange(function(){ oBtn.innerHtml = fs.isFullScreen ? '退出全屏' : '進入全屏' })
兼容性:
http://caniuse.com/#feat=fullscreen