HTMLとCSSのメモ– デモページ

複数の画像リンクを自動で切り替えるJS-サンプルコード

5つの画像を順番にフェード表示するサンプルコード。
なお、画像サイズが表示領域と異なる場合を想定したコードです。
表示領域をレクタングル(300px x 250px)で指定し、サイズが異なる場合は拡大縮小で見切れるようにしています。

HTML
<ul class="banner-rotator">
  <li>
    <a href="#"><img src="画像パス1" alt="画像説明1"></a>
  </li>
  <li>
    <a href="#"><img src="画像パス2" alt="画像説明2"></a>
  </li>
  <li>
    <a href="#"><img src="画像パス3" alt="画像説明3"></a>
  </li>
  <li>
    <a href="#"><img src="画像パス4" alt="画像説明4"></a>
  </li>
  <li>
    <a href="#"><img src="画像パス5" alt="画像説明5"></a>
  </li>
</ul>
CSS
.banner-rotator{
  position: relative;
  width: 300px;
  height: 250px;
  margin: 0 auto;
  overflow: hidden;
}
.banner-rotator li{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}
.banner-rotator li img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
JavaScript
<script>
  document.addEventListener("DOMContentLoaded", function () {
    const items = document.querySelectorAll(".banner-rotator li");
    let index = 0;

    function showNextBanner() {
      items.forEach((item, i) => {
        item.style.opacity = i === index ? 1 : 0;
      });
      index = (index + 1) % items.length;
    }

    showNextBanner(); // 最初のバナー表示
    setInterval(showNextBanner, 5000); // 5秒ごとに切り替え
  });
</script>

※解説ページのコードを応用しています。

解説ページに戻る