Facebook Twitter RSS
ホーム ウェブ企画ラボ JavaScript スマホOK!スライダーにYouTubeなど自動再生動画を使う方法(slick.js)

スマホOK!スライダーにYouTubeなど自動再生動画を使う方法(slick.js)

この記事のタイトルとURLをコピーする
スマホOK!スライダーにYouTubeなど自動再生動画を使う方法(slick.js)
https://webkikaku.co.jp/blog/javascript/slide_movie/
facebook twitter hatena Pocket

スマホ再生OK!スライダーに自動再生動画を使う場合の設置方法

サイトのメインビジュアルで動画がを再生するのは最近のトレンドとなっています。

今回はさらにアレンジして自動再生動画を使ったスライダーの作成に挑戦してみました。その際の知見をご紹介いたします。

まずはデモ紹介

早速ですが、完成形デモをご紹介します。こちらをご覧ください。

<ul class="slider">
  <li><a href="#"><video src="https://webkikaku.co.jp/blog/wp-content/themes/newwk/images/entryimg/Pexels-Videos-123540.mp4" autoplay loop muted></a></li>
  <li><a href="#"><video src="https://webkikaku.co.jp/blog/wp-content/themes/newwk/images/entryimg/Pexels-Videos-2629-1.mp4" autoplay loop muted></a></li>
  <li><div id="youtube"></div></li>

</ul>

.slider{
    margin: 20px auto;
    width: 80%;
    opacity: 0;
    transition: 3s;
}
.slick-initialized{
    opacity: 1
}
.slider img,
.slider video,
.sliderBox iframe{
    width: 100%;
    height: auto;
}

.slick-slide li{
    position: relative;
    padding-bottom: 56.25%;
        height: 0;
    overflow: hidden;
}


.slick-slide iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
//slickの設定
$('.slider').slick({
    autoplay:true, //自動スライド
    autoplaySpeed:3000, //スライドさせる間隔
    dots:true, //ドットインジケーターを表示
    lazyLoad:"progressive", //画像の遅延読み込み
    arrows:false, //スライドの左右の矢印ボタンを非表示
   cssEase:"cubic-bezier(0.9, 0.03, 0.4, 0.9)", //CSS3アニメーションイージングを設定
   pauseOnHover:false
});
// YouTubeの埋め込み
function onYouTubeIframeAPIReady() {
ytPlayer = new YT.Player(
'youtube', // 埋め込む場所の指定
{
    videoId: 'q6T0wOMsNrI', // YouTubeのID
    playerVars: {
        height: '100%',
        width: '100%',
        loop: 1,//ループ設定
        playlist: 'q6T0wOMsNrI',//次に流すYouTubeのID loopの設定が1の場合必須
        controls: 0,//コントローラー無し
        autoplay: 1,//オートプレイ
        showinfo: 0,//動画タイトル表示しない
        rel: 0,//関連動画の制御
        iv_load_policy: 3,//動画のアノテーション
        start: 30 //スタート秒数の指定
    },
    events: {
        'onReady': onPlayerReady
    }
}
);
}
//プレイ準備完了後
function onPlayerReady(event) {
event.target.playVideo();
event.target.mute();
}

はい。かしゆかかわいいですね。
次に作り方を見ていきましょう。

自動再生動画入りのスライドの作り方

スライダープラグイン「slick」で作成

今回のスライダーは、レスポンシブ・タッチデバイスにばっちり対応、カスタマイズ性も高いスライダープラグイン「slick」を使用しました。

slick – the last carousel you'll ever need

slickの基本形

まずは、slickをダウンロードして中のjsとcssを読み込みます。jQuery本体を設置するのも忘れないようにしましょう。

<link href="js/slick-theme.css" rel="stylesheet" type="text/css">
<link href="js/slick.css" rel="stylesheet" type="text/css">
<script src="https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>
<script type="text/javascript" src="js/slick.min.js"></script>

続いてhtmlを記述します。cssは既に読み込んでいるので、新たに設定せずともスライダーの基本形は表示されます。スライダーの見た目を調整したい場合は適宜cssを追加してください。

<ul class="slider">
    <li><a href="#">動画をいれます。</a></li>
    <li><a href="#">動画をいれます。</a></li>
    <li><a href="#">動画をいれます。</a></li>
</ul>

次にjQueryでslickのスライド表示と動きを設定します。今回は以下のように設定にいたしました。スライダーの基本形はこれで完成です。

//slickの設定
$('.slider').slick({
    autoplay:true, //自動スライド
    autoplaySpeed:3000, //スライドさせる間隔
    dots:true, //ドットインジケーターを表示
    lazyLoad:"progressive", //画像の遅延読み込み
    arrows:false, //スライドの左右の矢印ボタンを非表示
   cssEase:"cubic-bezier(0.9, 0.03, 0.4, 0.9)" //CSS3アニメーションイージングを設定
});

slickの他のカスタマイズは以下をご参考ください。

「slick」の使い方とオプションによるカスタマイズ | stand-4U

自動再生できる動画は消音限定

ここから自動再生動画をスライドに入れていくのですが、1つ注意点があります。

Safari(バージョン11.0)より、オーディオ付きのメディアが自動再生されない仕様に変更となりました。

制作側からするとかなり困る仕様変更ですが、ユーザー側としては、勝手に音が出るのはびくっとしますし、自動再生できなくなったのは良い対応ですね。

つまり、自動再生させたい動画は必ずミュートにしなければなりません。これを覚えておいてください。

HTML5 videoタグを使用

動画を入れ込むには2つの方法があります。まずはhtml5のvideoタグを使う方法です。

<ul class="slider">
  <li><a href="#"><video src="images/video1.mp4" autoplay loop muted></a></li>
  <li><a href="#"><video src="images/video2.mp4" autoplay loop muted></a></li>
  <li><a href="#"><video src="images/video3.mp4" autoplay loop muted></a></li>
</ul>

videoタグには属性を設定することで、動画の挙動を制御できます。今回は自動再生の「autoplay」、繰り返し再生する「loop」、ミュート設定の「muted」を設定しました。

ミュートと自動再生を同時に設定することで、自動再生が可能になります。videoタグのその他の属性については下記リンクをご参考ください。

<video>-HTML5タグリファレンス

YouTubeの埋め込み動画を使用

続いてYouTubeの動画を埋め込む方法の紹介です。こちらのが手順が少し複雑です。

videoタグと同様に、動画の挙動を制御するパラメータを設定できるですが、残念ながらミュートの設定はありません。そこで、YouTubeの「iframe API」を利用します。

まずは、htmlにAPIを読み込み、

<script src="https://www.youtube.com/iframe_api"></script>

つづいて、動画を読み込ませたい位置に以下のようにdivを記述します。

<ul class="slider">
    <li><div id="youtube"></div></li> <!--idのyoutubeは任意の指定です -->
    <li><div id="youtube2"></div></li> <!--idのyoutube2は任意の指定です -->
    <li><div id="youtube3"></div></li> <!--idのyoutube3は任意の指定です -->
</ul>

その後にjQueryでパラメータを設定を行います。パラメータの指定はコメントにしてありますので、そちらをご参考ください。
自動再生やループ設定の他に、YouTubeをデフォルトで読み込ませるとYouTubeのロゴやタイトル、関連動画などが表示されてしまうので、そのあたりを制御しました。

// YouTubeの埋め込み
function onYouTubeIframeAPIReady() {
ytPlayer = new YT.Player(
'youtube', // htmlで指定したID
{
    videoId: 'q6T0wOMsNrI', // YouTubeのID
    playerVars: {
        height: '100%',
        width: '100%',
        loop: 1,//ループ設定
        playlist: 'q6T0wOMsNrI',//次に流すYouTubeのID loopの設定が1の場合必須
        controls: 0,//コントローラー無し
        autoplay: 1,//オートプレイ
        showinfo: 0,//動画タイトル表示しない
        rel: 0,//関連動画の制御
        iv_load_policy: 3,//動画のアノテーション
        start: 30 //スタート秒数の指定
    },
    events: {
        'onReady': onPlayerReady
    }
}
);
}
//プレイ準備完了後
function onPlayerReady(event) {
event.target.playVideo();
event.target.mute();
}

YouTubeのIDは入れ込みたい動画のページURLの「https://www.youtube.com/watch?v=」以下の文字列になります。

例:入れ込みたいYouTubeのURLが「https://www.youtube.com/watch?v=q6T0wOMsNrI」の場合、IDは「q6T0wOMsNrI」

最後にcssで読み込んだ動画表示を調整します。レスポンシブでも上手く表示できるように調整しました。

.slider img,
.slider video,
.sliderBox iframe{
    width: 100%;
    height: auto;
}

.slick-slide li{
    position: relative;
    padding-bottom: 56.25%;
        height: 0;
    overflow: hidden;
}


.slick-slide iframe{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

これで、YouTubeの埋め込みは完成です!

まとめ

以上が、スライダーに自動再生動画を使う場合の設置方法になります。

動画をスライドで見せる場合は、いくつも動画を読み込むことになると思うので、上記に加え、動画の軽量化や読み込むまでのローディングの設定なども重要になってくるなと感じました。

5G回線が普及すればもっと豊かなコンテンツの見せ方も登場してくると思います。今から楽しみです。それではまた!

参考にさせていただいたサイト

この記事のタイトルとURLをコピーする
スマホOK!スライダーにYouTubeなど自動再生動画を使う方法(slick.js)
https://webkikaku.co.jp/blog/javascript/slide_movie/
facebook twitter hatena Pocket

東京・名古屋を中心に、中小企業に特化したホームページ制作会社。マーケットやビジネスモデルに合わせ一社一社に合わせたウェブ制作・リニューアルのご提案しています。
1000サイト以上のウェブマーケティング支援で獲得したノウハウで、リニューアル後に過去最高の成果を生み出したお取引先は多数。勘ではなくロジックに基づいたホームページ制作と柔軟な対応力で多数のお客様にご評価頂いております。

どのようなお悩みでも構いません。ホームページを有効的に活用できていないと考えているご担当者の方、まずは一度弊社にご相談くださいませ。

ご提案依頼・ご相談はこちら
公式facebook、twitterから情報を受けとる
いいね!する フォローする
前のページ
次のページ
ページトップ