JavaScriptでフルスクリーン終了・エレメント取得も
前回、requestFullscerrn()メソッドを追加を試したので、今回は、フルスクリーンの終了とエレメント取得も追加しておこう、Internet Explorer Dev Centerのソースを見るとベンター毎にFullScreenかFullscreenか(Sが大文字か小文字か)で微妙にちがうな。
前回のものと合体して、書きなおしておく。
今回はいっぱい書くのが面倒なのでjQueryも使った。
exitFullscreen()はdocumentオブジェクトの呼び出しだったので、そのまま上書きした。ちなみにwebkitには、webkitCancelFullScreen()ってのもあるみたい(Sが大文字)で、動作は同じ。
fullscreenElementプロパティはgetterを使って、上書きしておいた。
あ、それと、fullscreenElement が null なら、フルスクリーン表示中ではないとわかるらしい。
これで、requestFullscreen()、exitFullscreen()、fullscreenElementが使えるようになるはず。
Javascriptすげーな、なんでも実装できちゃうね★
追記:defineProperty()の方がいいみたい。
修正:2016/02/09 [fullscreen.js : Line 19] FullscreenElement → fullscreenElement
前回のものと合体して、書きなおしておく。
今回はいっぱい書くのが面倒なのでjQueryも使った。
Element.prototype.requestFullscreen = Element.prototype[(
Element.prototype.requestFullscreen ||
Element.prototype.msRequestFullscreen ||
Element.prototype.webkitRequestFullScreen ||
Element.prototype.mozRequestFullScreen ||
{name:null}).name] || function(){};
document.exitFullscreen =
document.exitFullscreen ||
document.msExitFullscreen ||
document.webkitExitFullscreen ||
document.mozCancelFullScreen ||
function(){};
if(!document.fullscreenElement)
document.__defineGetter__("fullscreenElement", function(){
return(
document.msFullscreenElement ||
document.webkitFullscreenElement ||
document.mozFullScreenElement || null);
});
上記のコードをJavascriptの先頭の方にいれておけば良い。ここまではjQueryは必要ないよ。exitFullscreen()はdocumentオブジェクトの呼び出しだったので、そのまま上書きした。ちなみにwebkitには、webkitCancelFullScreen()ってのもあるみたい(Sが大文字)で、動作は同じ。
fullscreenElementプロパティはgetterを使って、上書きしておいた。
あ、それと、fullscreenElement が null なら、フルスクリーン表示中ではないとわかるらしい。
これで、requestFullscreen()、exitFullscreen()、fullscreenElementが使えるようになるはず。
Javascriptすげーな、なんでも実装できちゃうね★
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script> <script src="fullscreen.js"></script> </head> <body> <div id="fullScreen"> <h3>Full Screen Demo</h3> <p>MODE:<span id="mode">NORMAL SCREEN</span></p> <button id="elem">FullscreenElement</button> <button id="full">RequestFullscreen()</button> <button id="exit">ExitFullscreen()</button> </div> </body> </html>
Element.prototype.requestFullscreen = Element.prototype[(
Element.prototype.requestFullscreen ||
Element.prototype.msRequestFullscreen ||
Element.prototype.webkitRequestFullScreen ||
Element.prototype.mozRequestFullScreen ||
{name:null}).name] || function(){};
document.exitFullscreen =
document.exitFullscreen ||
document.msExitFullscreen ||
document.webkitExitFullscreen ||
document.mozCancelFullScreen ||
function(){};
if(!document.fullscreenElement)
document.__defineGetter__("fullscreenElement", function(){
return(
document.msFullscreenElement ||
document.webkitFullscreenElement ||
document.mozFullScreenElement || null);
});
// 以下jQueryが必要
$(function(){
var bg;
$("#elem").click(function(){
bg = (bg!="blue")?"blue":"red";
$(document.fullscreenElement).css("background",bg);
});
$("#full").click(function(){
$("#fullScreen")[0].requestFullscreen();
$("#mode").text("FULL SCREEN");
});
$("#exit").click(function(){
document.exitFullscreen();
$("#mode").text("NORMAL SCREEN");
});
});
動作は、「FullscreenElement」ボタンはフルスクリーンの時しか動作せず、青と赤が切り替わるはず。
追記:defineProperty()の方がいいみたい。
修正:2016/02/09 [fullscreen.js : Line 19] FullscreenElement → fullscreenElement
コメント
コメントを投稿