HTML5實現全屏


現在主流的瀏覽器都支持全屏,但是各家實現不一。下面是主流瀏覽器實現方法:

// W3C 提議
element.requestFullscreen();
element.exitFullscreen();

// Webkit (works in Safari5.1 and Chrome 15)
element.webkitRequestFullScreen();
element.webkitCancelFullScreen();
 
// Firefox 10+
element.mozRequestFullScreen();
element.mozCancelFullScreen();

實際使用的時候我們需要做兼容,可以用函數包裝起來:

//進入全屏
function requestFullScreen(element) {
    var de = document.querySelector(element) || document.documentElement;
    if (de.requestFullscreen) {
        de.requestFullscreen();
    } else if (de.mozRequestFullScreen) {
        de.mozRequestFullScreen();
    } else if (de.webkitRequestFullScreen) {
        de.webkitRequestFullScreen();
    }
}
//退出全屏
function exitFullscreen(element) {
    var de = document.querySelector(element) || document.documentElement;
    if (de.exitFullscreen) {
        de.exitFullscreen();
    } else if (de.mozCancelFullScreen) {
        de.mozCancelFullScreen();
    } else if (de.webkitCancelFullScreen) {
        de.webkitCancelFullScreen();
    }
}

封裝后兼容主流瀏覽器用法,且支持某個指定的元素全屏,支持class、id查詢。默認是對整個網頁全屏。

調用方法:

requestFullScreen();
requestFullScreen('body');
requestFullScreen('#main');

可能出於安全考慮,只能手動觸發才能實現全屏,瀏覽器自動執行無效果。通過控制台可以看到提示:API can only be initiated by a user gesture。

HTML5全屏API 相對比較簡單,但是瀏覽器的差異性導致很丑的代碼,並且不能保證它們不會再改變。如果你不想自己維護代碼,你可以使用screenfull.js 這樣的類庫,它可以平滑過渡這些差異。

參考: 1、HTML5實現全屏API【進入和退出全屏】 - kingwell - 博客園 http://www.cnblogs.com/kingwell/p/3706352.html 2、How to Use HTML5 FUll Screen API(如何使用HTML5全屏接口) - 微個日光日 - 博客頻道 - CSDN.NET http://blog.csdn.net/xiebaochun/article/details/40143025 3、sindresorhus/screenfull.js: Simple wrapper for cross-browser usage of the JavaScript Fullscreen API https://github.com/sindresorhus/screenfull.js/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM