マウスホバーで自動再生を停止できるカルーセルを作る方法【HTML/CSS/JavaScript・サンプルコード付き】

カルーセル

マウスホバーで自動再生を停止できるカルーセルを作る方法

マウスホバーで自動再生を停止できるカルーセルをHTML・CSS・JavaScriptで作る方法を紹介します。通常時は一定時間ごとにスライドが自動で切り替わり、カルーセルの上にマウスポインターを乗せると自動再生が一時停止します。マウスを外すと再び自動再生が始まるため、ユーザーが内容を読みたい時だけ止められる使いやすいカルーセルです。

このサンプルでは、前へ・次へボタン、ドットナビ、自動再生、ホバー時の停止処理を実装します。スライドの切り替えはJavaScriptで管理し、CSSで横方向のスライドアニメーションを設定します。お知らせ、キャンペーン、商品紹介、トップページのメインビジュアルなど、複数の情報を順番に見せたい場面に向いています。

自動再生の間隔やスライド速度はコード内の数値を変更することで調整できます。自動で動くカルーセルは便利ですが、読んでいる最中に切り替わると使いにくくなる場合があります。マウスホバーで停止できるようにしておくことで、見やすさと操作性の両方を高められます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

このデモでは、3秒ごとにスライドが自動で切り替わります。カルーセルへマウスポインターを乗せている間は自動再生が停止し、マウスを外すと再び自動再生を開始します。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマホ表示に対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>マウスホバーで自動再生を停止できるカルーセル</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- マウスホバー停止対応カルーセル全体 -->
  <div class="hover_pause_carousel_demo">

    <!-- カルーセル表示エリア:ここにマウスを乗せると自動再生を停止 -->
    <div class="hover_pause_carousel_view" id="hover-pause-carousel">

      <!-- 横方向にスライドする一覧 -->
      <div class="hover_pause_carousel_track" id="hover-pause-carousel-track">

        <!-- スライド1 -->
        <div class="hover_pause_carousel_slide">
          <div class="hover_pause_carousel_content">
            <div class="hover_pause_carousel_title">自動再生カルーセル</div>
            <p class="hover_pause_carousel_text">通常時は3秒ごとにスライドが切り替わります。</p>
            <a href="#" class="hover_pause_carousel_link">詳しく見る</a>
          </div>
        </div>

        <!-- スライド2 -->
        <div class="hover_pause_carousel_slide">
          <div class="hover_pause_carousel_content">
            <div class="hover_pause_carousel_title">ホバーで停止</div>
            <p class="hover_pause_carousel_text">マウスポインターを乗せると自動再生が停止します。</p>
            <a href="#" class="hover_pause_carousel_link">詳細を見る</a>
          </div>
        </div>

        <!-- スライド3 -->
        <div class="hover_pause_carousel_slide">
          <div class="hover_pause_carousel_content">
            <div class="hover_pause_carousel_title">ホバー解除で再開</div>
            <p class="hover_pause_carousel_text">マウスを外すと自動再生を再開します。</p>
            <a href="#" class="hover_pause_carousel_link">確認する</a>
          </div>
        </div>

      </div>

      <!-- 前へボタン -->
      <button class="hover_pause_carousel_arrow hover_pause_carousel_prev" type="button" id="hover-pause-carousel-prev" aria-label="前へ">
        前へ
      </button>

      <!-- 次へボタン -->
      <button class="hover_pause_carousel_arrow hover_pause_carousel_next" type="button" id="hover-pause-carousel-next" aria-label="次へ">
        次へ
      </button>

      <!-- ドットナビ -->
      <div class="hover_pause_carousel_dots">

        <!-- スライド1へ移動 -->
        <button class="hover_pause_carousel_dot is-active" type="button" data-index="0" aria-label="スライド1"></button>

        <!-- スライド2へ移動 -->
        <button class="hover_pause_carousel_dot" type="button" data-index="1" aria-label="スライド2"></button>

        <!-- スライド3へ移動 -->
        <button class="hover_pause_carousel_dot" type="button" data-index="2" aria-label="スライド3"></button>

      </div>

    </div>

  </div>

  <!-- JavaScriptファイルを読み込み -->
  <script src="script.js"></script>

</body>
</html>

ファイル構成と設置方法

このサンプルは、HTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでカルーセルのレイアウトを作成し、CSSでデザインやスライドアニメーションを設定します。JavaScriptでは前へ・次へボタン、ドットナビ、自動再生、マウスホバー中の自動再生停止、ホバー解除後の自動再生再開を制御しています。

sample
├── index.html
├── style.css
└── script.js

sample/index.html をブラウザで開くと動作を確認できます。スライドのタイトルや説明文、ボタンの文字は index.html で変更できます。カルーセルの高さは style.css.hover_pause_carousel_slide にある min-height:420px; を変更すると調整できます。スライドの切り替え速度は style.csstransition:transform .45s ease; を変更します。.45s = 0.45秒で、数値を大きくすると切り替えがゆっくりになり、小さくすると速くなります。自動再生の間隔は script.jsconst hoverPauseCarouselInterval = 3000; を変更します。3000 = 3秒で、数値を大きくすると次のスライドまでの待機時間が長くなり、小さくすると短い間隔で自動再生されます。


コメント