{}const=>[]async()letfn</>var
JSWeb開発

クリーンなJavaScriptでシンプルで機能的なスライダーを作成する方法🔥

純粋なJavaScriptのみを使用して、あらゆるWebプロジェクトに適した、軽くて素早く、適応性のあるスライダーを作成する方法を学びます。初心者向けの簡単なガイド!

К

Kodik

著者

2分で読める

今日、便利なスライダーのない現代のサイトを想像することは困難です。🔥スライダーはウェブページをよりダイナミックで魅力的にし、より多くのコンテンツを表示し、画面上のスペースを節約するのに役立ちます。

この記事では、純粋なJavaScriptのみを使用し、追加のライブラリを使用せずに、いくつかの一般的なタイプのスライダーを作成する方法を説明します。これにより、プロジェクトを軽く、速く、メンテナンスしやすくできます。さあ始めましょう!


📌ライブラリではなく、純粋なJavaScriptを使用する理由は何ですか?

もちろん、Swiper、OwlCarousel、SlickJSなどのライブラリは非常に便利です。しかし、純粋なJavaScriptには明らかな利点があります。

  • 🚀ページサイズが小さく、読み込み速度が速くなります。

  • 🎯 機能を完全に制御できます。

  • 🛠️ 特定のタスクに合わせて柔軟に微調整できる機能。


🔥 10万人以上の学生が参加中

理論を読むのに疲れた?
コーディングの時間だ!

Kodik — 実践でプログラミングを学ぶアプリ。AIメンター、インタラクティブなレッスン、実際のプロジェクト。

🤖 AI 24時間
🎓 修了証
💰 無料
🚀 始める
今日参加

🔖 シンプルなスライダーの要素:それぞれの目的は?

コードを書き始める前に、スライダーのHTMLとCSSの構造に要素が必要な理由を理解しましょう。

  • スライダーのコンテナー(slider):スライドの表示領域を制限するメインブロック。

  • スライドコンテナー(slides):画像(スライド)が含まれる内部ブロック。CSSを使用すると、このブロックはスライドを切り替えながら左右に移動します。

  • コントロールボタン(prevnext): ユーザーが手動でスライドを切り替えることができます。


🖥️例1:ボタン付きの基本的な水平スライダー

HTMLフレームワークを作成します。

<div class="slider">
  <div class="slides">
    <img src="slide1.jpg" alt="Slide 1">
    <img src="slide2.jpg" alt="Slide 2">
    <img src="slide3.jpg" alt="Slide 3">
  </div>

  <button class="prev">←</button>
  <button class="next">→</button>
</div>

スタイルのCSS:

.slider {
  width: 800px;
  overflow: hidden; /* Скрываем лишние слайды */
  position: relative;
  margin: auto;
}

.slides {
  display: flex; /* Располагаем изображения горизонтально */
  transition: transform 0.5s ease; /* Анимация перехода */
}

.slides img {
  width: 800px; /* Ширина каждого слайда равна ширине слайдера */
  flex-shrink: 0; /* Запрещаем сжатие изображений */
}

button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.5);
  color: #fff;
  border: none;
  padding: 10px;
  cursor: pointer;
}

.prev { left: 10px; }
.next { right: 10px; }

JavaScript、ロジックの説明:

// DOM 要素を取得する
const slides = document.querySelector('.slides');
const images = document.querySelectorAll('.slides img');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');

let currentSlide = 0; // 現在のスライド

// スライド切り替え機能
function showSlide(index) {
  if (index < 0) {
    currentSlide = images.length - 1; // 最初のものよりも小さい場合は、最後のものに移動します
  } else if (index >= images.length) {
    currentSlide = 0; // 最後のものより大きい場合は、最初のものに移動します
  } else {
    currentSlide = index;
  }

  // スライドコンテナーを目的の位置に移動します
  slides.style.transform = `translateX(-${currentSlide * 800}px)`;
}

// クリック処理
prevBtn.addEventListener('click', () => showSlide(currentSlide - 1));
nextBtn.addEventListener('click', () => showSlide(currentSlide + 1));

🎨例2:フェード効果を持つ自動エンドレススライダー

このオプションは、スムーズに切り替えられるバナーやギャラリーに適しています。

HTMLコード:

<div class="fade-slider">
  <img class="fade-slide active" src="slide1.jpg">
  <img class="fade-slide" src="slide2.jpg">
  <img class="fade-slide" src="slide3.jpg">
</div>

CSSスタイル:

.fade-slider {
  position: relative;
  width: 800px;
  height: 500px;
  margin: auto;
}

.fade-slide {
  position: absolute;
  opacity: 0;
  transition: opacity 1s ease;
  width: 100%;
  height: 100%;
}

.fade-slide.active {
  opacity: 1;
}

スライダーを動作させるためのJavaScript:

const slidesFade = document.querySelectorAll('.fade-slide');
let currentFade = 0;

function fadeShowSlide() {
  slidesFade.forEach(slide => slide.classList.remove('active')); // アクティブなクラスを削除します
  currentFade = (currentFade + 1) % slidesFade.length; // 次のスライドに進みます
  slidesFade[currentFade].classList.add('active'); // 現在のスライドを表示します
}

// 4秒ごとに自動切り替え
setInterval(fadeShowSlide, 4000);

📱 例3:モバイルスワイプ対応のアダプティブスライダー

このスライダーは、モバイルデバイスでスワイプして切り替えることができます。

スワイプを実装するための一般的なJS原則:

const slider = document.querySelector('.slides');
let startX = 0;
let endX = 0;

slider.addEventListener('touchstart', e => {
  startX = e.touches[0].clientX;
});

slider.addEventListener('touchmove', e => {
  endX = e.touches[0].clientX;
});

slider.addEventListener('touchend', () => {
  if (startX - endX > 50) {
    showSlide(currentSlide + 1); // 左にスワイプ
  }
  if (endX - startX > 50) {
    showSlide(currentSlide - 1); // 右にスワイプ
  }
});

🎯 JavaScriptのスキルをさらに磨きたいですか?

アプリでプログラミングの学習を始めましょう コディック! 👨‍💻
Kodikは、インタラクティブなレッスンと興味深いタスクを通じて、JavaScriptやその他のテクノロジーを簡単に習得するのに役立つ便利なアプリケーションです。

🎯先延ばしをやめよう

記事は気に入った?
実践の時間だ!

Kodikでは読むだけでなく、すぐにコードを書く。理論 + 実践 = 本当のスキル。

即座に実践
🧠AIがコードを説明
🏆修了証

登録不要 • カード不要