HTMLのvideoタグを使って、簡単に動画を表示することができます。
そこで、よくあるヒーローヘッダーの画像を背景動画に変えていい感じにキャッチコピーなどのテキストの背景に表示してみます。
まずデモをご確認ください。
Demo
*スマホサイズでは非表示にして画像に変えています。
HTMLを準備
基本的に以下で動画が表示できます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>html-video</title>
<!-- 独自CSS -->
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<!-- top -->
<div class="top">
<video id="video1" src="ビデオのURL" muted autoplay loop>
<p>動画を再生するにはvideoタグをサポートしたブラウザが必要です。</p>
</video>
<div class="headline">
<h2>Headline here</h2>
<p>This is a sample text.</p>
</div>
</div>
ここで、videoタグに対応していないブラウザ用にvideoタグの中に「動画を再生するにはvideoタグをサポートしたブラウザが必要です。」などのメッセージを書いておくと良いです。
videoタグ内にsourceタグを入れることで、異なるフォーマットの動画データを複数指定できます。
これをすることで、異なるブラウザでも動画が表示される可能性が高くなります。
*ブラウザは、記述された順に再生可能なデータを再生・表示します。
こんな感じ
<video>
<source src='ビデオのURL' type='video/ogg; codecs="theora, vorbis"'>
<source src='異なる形式のビデオのURL' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
これで動画とテキストの準備完了です。
テキストを動画の上に表示する
CSSでヘッドライン(テキスト)を中央揃えにして動画の上に表示させていきます。
body {
font-family: 'Helvetica Neue','Helvetica','Arial',YuGothic,'Yu Gothic','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','メイリオ', Meiryo,'MS ゴシック',sans-serif;
margin: 0 auto;
}
/*--------------トップ-----------------*/
.top {
height: 100%;
background: none;
position: relative;
}
.top video {
display: block;
width: 100%;
}
.headline {
position: absolute;
text-align: center;
top: 50%;
left: 50%;
-ms-transform: translate(-50%,-50%);
-webkit-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
.headline h2 {
margin: 0;
font-size: 52px;
color: #fff;
}
.headline p {
color: #fff;
font-weight: 100;
}
/*------------------------------------*/
/*--------------スマホ-----------------*/
/*------------------------------------*/
@media screen and (max-width: 480px) {
/*--------------トップ-----------------*/
.top {
background: url(img/topimg.jpg);
position: relative;
height: 100vh;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.top video {
display: none;
}
.headline {
width: 100%;
position: absolute;
}
.headline h2 {
margin: 0;
font-size: 36px;
color: #fff;
}
.headline p {
color: #fff;
font-weight: 100;
}
}
videoは無理に引き伸ばさないようにwidth:100%;にして、ヘッドラインはpositionとtransformで中央に表示しています。
スマホでは、動画によってはローディング時間が長くなるので、videoを非表示にして背景に画像を入れています。
videoタグの基本的な使い方
- poster=“画像url”:ユーザーの環境で利用できる動画がない場合に画像を表示
- control:再生・一時停止・再生位置の移動・ボリュームなどのインターフェースを表示
- autoplay:ページを読み込んだ時点で動画を再生
- preload:ページを読み込んだ時点で動画を裏側で読み込む。noneで読み込まない。
動画の形式
- mp4:Google Chrome / Safari
- ogv:Firefox / Opera
- webm:Google Chrome / Opera
ブラウザによって対応している動画形式など異なるので、しっかり対応しておきましょう。
スマホだと、読み込みが遅くなりユーザーが離脱してしまう原因となる可能性もありますので、画像に切り替えるか、重い動画の使用を避け他方が良いです。
以上、videoをいい感じにヒーローヘッダーの背景に表示する方法でした〜