YouTube動画を背景全画面で再生する
デモ
パソコンで閲覧いただくと背景に動画がループ再生されます
JSコードコピー
使い方
div
要素を1つ用意し、任意の場所を配置してください。
(配置場所によって表示が変わる可能性があります。うまくいかない場合は配置場所を変えてみてください。)
その要素にdata-jscopyand="youtubeBackground"
と、data-jscopyand-attributes="動画ID"
を付与してください。
解説
YouTube動画を配置する要素をdocument.querySelector
で取得します。
YouTube動画は指定した要素をiframe
に変えて表示します。
(詳しくは
Youtube IFrame Player API
を参照してください。)
そのため、iframe
に書き変わるdiv
要素を子要素に持つようにしておきます。
動画を背景全画面に配置するため、サイズを特定していきます。
baseWidth / baseHeight
の値は動画プレイヤーの初期値です。
これを使って横幅を比率を求め、変数widthRatio
に保持しておきます。
現在の画面サイズがwidthRatio
を超えているかどうか?の判定結果を変数isWideWindow
に保持しておきます。
最終的なサイズはisWideWindow
とwidthRatio
を使い、現在の画面サイズに演算して求めます。
スタイルを当てていきます。
背景に固定表示するためのスタイルと、再生が開始されるまで画面がチラつかないようにopacity: 0;
を当てておきます。
isWideWindow
を使い、動画が画面中央になるように位置調整をしておきます。
動画プレイヤーの設定をしていきます。
準備できた動画プレイヤーを保持しておくための変数player
を定義しておきます。
まずは動画の設定が可能になった時に呼び出させれる関数を定義します。
Youtube IFrame Player API
を参考にしつつ、引数に先に求めていた動画サイズの指定、YouTube動画を配置する要素に指定してあった動画IDの取得と指定、この後に呼び出される各関数の指定をしておきます。
次に動画プレイヤーの準備ができた時に呼び出される関数を定義します。
自動再生をするためにミュートにしてから再生を指示します。
続いて再生状況が変わった時に呼び出される関数を定義します。
引数に渡ってくるオブジェクトのdata
というプロパティには、状況を判断できる数値が入っています。
1
は再生が始まったことを表しています。
この段階でopacity: 0;
で非表示にしていた動画プレイヤーを表示状態に戻します。
0
は再生時間が最後まで到達し、終了したことを表しています。
再生をループさせるため、再度動画再生を指示します。
最後に設定の呼び出しを開始します。
Youtube IFrame Player APIを使うためにscript
を配置し、最初に呼び出されるonYouTubeIframeAPIReady
をwindow
プロパティに指定することでグローバルな呼び出しを可能にします。
ヘルプ・コンタクト
機能に関するご質問は、このページの下部に表示されている Twitter
のアイコンから Twitter に遷移後、 DM 等でご連絡ください。
導入サポートやカスタマイズも有償にてお受け致しますので、 DM
等でご連絡ください。