videoタグのつまずき2/全画面表示 /たてよこいっぱい

web
Jul 29, 2020

動画の全画面表示編

2021/3/21 DEMOページを追記しました。

「動画をフルスクリーンで表示したいのに、思ったようにできない…」が発生。
試行錯誤の結果をメモしておきます。HTMLとCSSだけです。jQueryなどは、使いません。
とくに、画面サイズが変わっても常に中央が表示されるようにしたい(センター基準)にするのに、悩みました。
これは、ビューポートのアスペクト比を調べるaspect-ratioを使う事で解決しました。

HTML

<div class="video-container">
<div class="video-wrap">
<video src=".../●●●.mp4" type="video/mp4" playsinline loop autoplay muted>
</video>
</div>		
</div>	

CSS

.video-container {
  margin: 0 auto;
  width: 100%;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

.video-wrap {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100vh;
  background: url(img/video.jpg) no-repeat center center/cover;
}

video {
  min-width: 100%;
  min-height: 100vh;
  position: absolute;
}

/*画面サイズが変わっても常に動画の中央が表示されるようにする*/
/*動画よりも画面が横に長くなるとき用*/
@media (aspect-ratio: 16/9), (min-aspect-ratio: 16/9) {
  video {
    width: 100%;
    top: 50%;
    transform: translateY(-50%);
  }
}

/*動画よりも画面が縦に長くなるとき用*/
@media (max-aspect-ratio: 16/9) {
  video {
    height: 100%;
    left: 50%;
    transform: translateX(-50%);
  }
}

これで、パソコンでも、スマホでも、レスポンシブしたって、常にセンター合わせで全画面表示されます。

DEMOページです。このDEMOは正方形の動画を使っているので、メディアクエリの「aspect-ratio」「min-aspect-ratio」「max-aspect-ratio」の「16/9」になっている箇所を「1/1」にして表示しています。

#animation

#いったところmemo

#読書きろく