Full Screen API を試してみたので使い方をメモ。
対応ブラウザ
Full Screen APIの対応ブラウザはこちら。
IEは11から対応で、それ以外で対応しているものでもベンダープレフィックスが必要になります。
スマホの場合はほぼ使用できません。
サンプルコード
今回は#video-areaをフルスクリーンにしてみます。
HTML
<div id="video-area"> <video id="video" width="480" height="270" controls> <source src="./movie.mp4" type="video/mp4" /> </video> <div id="control"> <button id="full">FullScreen</button> <button id="exit">Exit</button> </div> </div>
CSS
フルスクリーン時は、:fullscreenという疑似クラスでスタイルを指定できます。
ベンダープレフィックスを付けて以下のように指定します。
- :-ms-fullscreen
- :-webkit-full-screen
- :-moz-full-screen
- :fullscreen
webkitとmozでは間に「-」が入って「full-screen」となるので注意。
#video-area { position: relative; } #control { position: absolute; top: 5px; left: 5px; } #control #exit { display: none; } #video-area:-webkit-full-screen #video { width: 100%; height: auto; } #video-area:-moz-full-screen #video { width: 100%; height: auto; } #video-area:-ms-fullscreen #video { width: 100%; height: auto; } #video-area:fullscreen #video { width: 100%; height: auto; }
JavaScript
// videoの取得 var varea = document.getElementById('video-area'); var video = document.getElementById('video'); // 自動再生 video.autoplay = true; // ループ video.loop = true; var full = document.getElementById('full'); var exit = document.getElementById('exit'); // FullScreenに対応しているか確認 if(!(document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled || document.fullscreenEnabled)) { // 対応していない場合はボタン非表示 full.style.display = 'none'; } // fullボタンを押した時 full.addEventListener('click', function () { if(document.fullscreenEnabled) { varea.requestFullscreen() } else if(document.webkitFullscreenEnabled) { varea.webkitRequestFullscreen() } else if(document.mozFullScreenEnabled) { varea.mozRequestFullScreen(); } else if(document.msFullscreenEnabled) { varea.msRequestFullscreen(); } else { console.log('error!'); } // ボタン表示の切り替え exit.style.display = 'block'; full.style.display = 'none'; }); // exitボタンを押した時 exit.addEventListener('click', function () { if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); // } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); // } else if (document.msExitFullscreen) { document.msExitFullscreen(); // } else if (document.exitFullscreen) { document.exitFullscreen(); } // ボタン表示の切り替え exit.style.display = 'none'; full.style.display = 'block'; });
document.fullscreenEnabled | Full Screen APIが使用できる場合はtrueを返す。 ベンダープレフィックスが必要なので、それぞれ以下を記述。 document.webkitFullscreenEnabled document.msFullscreenEnabled document.mozFullScreenEnabled document.fullscreenEnabled mozでは「FullScreenEnabled」とsが大文字になっているので注意。 |
---|---|
element.requestFullScreen() | 指定した要素をフルスクリーンで表示する。 ベンダープレフィックスが必要なので、それぞれ以下を記述。 element.webkitRequestFullScreen(); element.mozRequestFullScreen(); element.msRequestFullScreen(); element.requestFullScreen(); |
document.exitFullscreen(); | フルスクリーン表示を終了する。 ベンダープレフィックスが必要なので、それぞれ以下を記述。 document.webkitCancelFullScreen(); document.mozCancelFullScreen(); document.msExitFullscreen(); document.exitFullscreen(); webkitとmozでは「cancelFullScreen」となるので注意。 |
【参考サイト】
- Fullscreen API を簡単に試してみた | WWW WATCH
- 全画面 API (Windows)
- 特定の要素を全画面(フルスクリーン)にするFullscreen API
- Fullscreen API と 闇 – Browser
- フルスクリーン API の利用 – Web developer guide | MDN
コメントが承認されるまで時間がかかります。