【CSS】動画の埋め込みと音量オンオフスイッチの実装

スポンサーリンク
スポンサーリンク

【CSS】動画の埋め込みと音量オンオフスイッチの実装

動画の埋め込みと音量オンオフスイッチの実装

以下の「<埋め込む動画のパス>」は書き換えてください。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<!-- アイコン -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer">
<link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
<!-- //アイコン -->

<!-- オンオフスイッチ -->
<script>
  $(function() {
    var video = $("video").get(0);
    $(".music").on("click", function() {
      if (video.muted) {
        video.muted = false;
      } else {
        video.muted = true;
      }
    });
  });
</script>
<!-- //オンオフスイッチ -->

<!-- video -->
<div class="video-container">
  <video src="<埋め込む動画のパス>" autoplay playsinline muted loop></video>
  <div class="video-sidebar">
    <div class="toggle_switch">
      <input type="checkbox" name="xxx" id="cb_toggle_switch">
      <label class="music" for="cb_toggle_switch"></label>
    </div>
  </div>
</div>
<!-- //video -->
/* ====================================
  ビデオ埋め込み
==================================== */
.video-container {
  padding: 0;
  text-align: center;
  width: 100%;
  border-radius: 5px;
  aspect-ratio: 16 / 9;
}

video {
  width: 100%;
  height: auto;
  border-radius: 5px;
}

/* オンオフスイッチ */
.video-sidebar {
  position: absolute;
  padding: 10px 10px;
  margin-top: -45px;
  font-size: 8px;
  text-align: center;
  color: rgba(255, 255, 255, .5);
  width: 100%;
}

/* アイコンのサイズ */
.toggle_switch {
  display: table;
  font-size: 18px;
}

.toggle_switch>input {
  display: none;
}

.toggle_switch>label {
  display: block;
  position: relative;
  cursor: pointer;
}

.toggle_switch>input:checked+label {
  color: rgba(255, 255, 255, .5);
}

/* ボリュームオンアイコン */
.toggle_switch>label::before {
  position: absolute;
  transition: 0.5s;
  content: '\f6a9';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}

/* ミュートアイコン */
.toggle_switch>input:checked+label::before {
  content: '\f028';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}

/* ====================================
  //ビデオ埋め込み
==================================== */

解説

ポイントとなる部分を解説します。

オンオフスイッチを実装するために以下をheadに記述します。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

音量オンオフのアイコンを使用するために以下をheadで記述します。

<!-- アイコン -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin="anonymous" referrerpolicy="no-referrer">
<link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
<!-- //アイコン -->

動画をループで自動再生させます。

<video src="<埋め込む動画のパス>" autoplay playsinline muted loop></video>

CSSでアイコンを使う場合は以下のように記述します。

/* ミュートアイコン */
.toggle_switch>input:checked+label::before {
  content: '\f028';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
}

ブランドのアイコンを使用する場合は「font-family」を以下のように記述します。

.toggle_switch>input:checked+label::before {
  content: '\f19a';
  font-family: "Font Awesome 5 Brands";
  font-weight: 900;
}

コメント

タイトルとURLをコピーしました