ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する

JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する

王林
リリース: 2023-11-04 08:59:17
オリジナル
1548 人が閲覧しました

JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する

JavaScript は、Web ページにインタラクティブな効果を追加するために使用できるスクリプト言語です。このうち、画像カルーセル効果とスライドショー効果は、Web ページのアニメーション効果として一般的ですが、この記事では、JavaScript 関数を使用してこれら 2 つの効果を実現する方法と具体的なコード例を紹介します。

  1. 画像カルーセル

画像カルーセルは、複数の画像を特定の方法で順番に再生するエフェクトです。画像カルーセルを実装する場合は、JavaScript タイマーと CSS スタイル コントロールを使用する必要があります。

(1) 準備

まず、HTML ファイル内にカルーセル画像を表示するための div コンテナを定義する必要があります。回転する必要があるすべての画像を保存するために別の ul 要素を定義できます。各 li 要素には画像が含まれます。

<div id="slider">
  <ul>
    <li><img  src="img1.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
    <li><img  src="img2.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
    <li><img  src="img3.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
    <li><img  src="img4.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
  </ul>
</div>
ログイン後にコピー

CSS ファイルでは、これらの要素に対していくつかのスタイル設定を行う必要があります。たとえば、div コンテナの幅と高さを画像の実際のサイズに設定し、オーバーフロー属性を非表示に設定すると、コンテナを超えた部分を非表示にできます。同時に、ul 要素の幅をすべての画像の幅の合計に設定し、高さを画像の実際の高さに設定します。

#slider {
  width: 600px;
  height: 400px;
  overflow: hidden;
  position: relative;
}

#slider ul {
  width: 2400px; /* 4张图片的宽度之和 */
  height: 400px;
  position: absolute;
  left: 0;
}
ログイン後にコピー

(2) カルーセルの実装

次に、JavaScript 関数を使用してカルーセル効果を実現する必要があります。具体的な実装プロセスは次のとおりです。

① 現在表示されている画像のシリアル番号を記録する変数インデックスを定義します。

var index = 0;
ログイン後にコピー

② 画像を一定間隔で切り替えてインデックス変数の値を更新するカルーセル関数を記述します。この関数では、カルーセル効果を実現できるように、ul 要素の左の値を現在の画像の幅の反対の数 (負の数) に設定する必要があります。

function slide() {
  index++;
  if (index >= 4) {  // 图片总数为4,如果index超过4,就将其重置为0
    index = 0;
  }
  var leftVal = -index * 600 + "px";  // 每次切换,将ul元素的left值设置为当前图片的宽度的相反数
  $("#slider ul").stop().animate({left: leftVal}, 500);  // 使用jQuery的animate方法实现滑动效果
}
ログイン後にコピー

上記のコードでは、アニメーション効果を実現するために使用できる jQuery ライブラリの animate() メソッドを使用しています。 animate() メソッドは 2 つのパラメータを受け入れます。最初のパラメータは、アニメーションの CSS プロパティと値を設定するために使用されるオブジェクトです。ここでは、ul 要素の left 属性を設定します。2 番目のパラメータは、次のパラメータに使用される数値です。アニメーションの実行時間をミリ秒単位で指定します。

③ カルーセル関数を呼び出し、setInterval() メソッドを使用して定期的に実行します。

setInterval(slide, 2000);
ログイン後にコピー

上記のコードでは、指定されたコードを定期的に実行するために使用できる setInterval() メソッドを使用しています。最初のパラメータは定期的に実行される関数の名前で、2 番目のパラメータはミリ秒単位の時間間隔です。

最後に、画像カルーセル全体の実装コードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
  <title>图片轮播</title>
  <meta charset="utf-8">
  <style>
    #slider {
      width: 600px;
      height: 400px;
      overflow: hidden;
      position: relative;
    }

    #slider ul {
      width: 2400px;
      height: 400px;
      position: absolute;
      left: 0;
    }

    #slider ul li {
      float: left;
    }
  </style>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script>
    $(function () {
      var index = 0;

      function slide() {
        index++;
        if (index >= 4) {
          index = 0;
        }
        var leftVal = -index * 600 + "px";
        $("#slider ul").stop().animate({left: leftVal}, 500);
      }

      setInterval(slide, 2000);
    })
  </script>
</head>
<body>
  <div id="slider">
    <ul>
      <li><img  src="img1.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
      <li><img  src="img2.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
      <li><img  src="img3.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
      <li><img  src="img4.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" ></li>
    </ul>
  </div>
</body>
</html>
ログイン後にコピー
  1. スライドショー効果

スライドショー効果は、複数の効果を組み合わせる方法です。画像 特定の順序で画像を切り替える効果。スライド効果を実装する場合、JavaScript イベント リスニングと CSS スタイル コントロールが必要です。

(1) 準備

同様に、HTML ファイル内でスライドを表示するために div コンテナを定義する必要があります。複数の img 要素を定義でき、各 img 要素には画像が含まれます。

<div id="slideshow">
  <img  src="img1.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
  <img  src="img2.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
  <img  src="img3.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
  <img  src="img4.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
</div>
ログイン後にコピー

CSS ファイルでは、これらの要素のスタイルを設定する必要があります。たとえば、div コンテナの幅と高さを画像の実際のサイズに設定し、オーバーフロー属性を非表示に設定し、すべての img 要素の位置を絶対に設定して重なり合うようにし、最初の画像以外のすべてを設定します。画像の透明度は0に設定されています。

#slideshow {
  width: 600px;
  height: 400px;
  overflow: hidden;
  position: relative;
}

#slideshow img {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}

#slideshow img:first-child {
  opacity: 1;
}
ログイン後にコピー

上記のコードでは、:first-child 疑似クラスを使用して、最初の画像の透明度を 1 に設定します。

(2) スライドショーの実装

次に、JavaScript 関数を使用してスライドショー効果を実現する必要があります。具体的な処理は次のとおりです。

① 現在表示されている画像のシリアル番号を記録する変数インデックスを定義します。

var index = 1;
ログイン後にコピー

② 画像を切り替えてインデックス変数の値を更新する関数を作成します。この関数では、まず現在表示されている画像の透明度を 0 に設定し、index 変数の値に 1 を加えて、画像の総数を超えているかどうかを判断します。それを超えた場合は 1 にリセットされます。次に、次の画像の透明度を 1 に設定してアニメーション化します。

function show() {
  $("#slideshow img:nth-child(" + index + ")").stop().animate({opacity: 0}, 1000); // 当前图片透明度减少
  index++;
  if (index > 4) {
    index = 1;
  }
  $("#slideshow img:nth-child(" + index + ")").stop().animate({opacity: 1}, 1000); // 下一张图片透明度增加
}
ログイン後にコピー

上記のコードでは、:nth-child セレクターを使用しています。これにより、指定された親要素の下にある子要素を選択できます。この例では、このセレクターを使用してインデックス画像を選択します。

③ setInterval()メソッドを使用して、show関数を定期的に実行します。

$(function () {
  setInterval(show, 3000);
})
ログイン後にコピー

上記のコードでは、jQuery ライブラリの $() メソッドと setInterval() メソッドを使用して、スケジュールされた呼び出しを実装します。 $() メソッドは指定された要素を取得するために使用され、setInterval() メソッドは指定された関数を定期的に呼び出すことができます。

最後に、スライド効果全体の実装コードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
  <title>幻灯片效果</title>
  <meta charset="utf-8">
  <style>
    #slideshow {
      width: 600px;
      height: 400px;
      overflow: hidden;
      position: relative;
    }

    #slideshow img {
      position: absolute;
      top: 0;
      left: 0;
      opacity: 0;
    }

    #slideshow img:first-child {
      opacity: 1;
    }
  </style>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  <script>
    $(function () {
      var index = 1;

      function show() {
        $("#slideshow img:nth-child(" + index + ")").stop().animate({opacity: 0}, 1000);
        index++;
        if (index > 4) {
          index = 1;
        }
        $("#slideshow img:nth-child(" + index + ")").stop().animate({opacity: 1}, 1000);
      }

      setInterval(show, 3000);
    })
  </script>
</head>
<body>
  <div id="slideshow">
    <img  src="img1.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
    <img  src="img2.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
    <img  src="img3.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
    <img  src="img4.jpg" alt="JavaScript 関数を使用して画像カルーセルとスライドショー効果を実装する" >
  </div>
</body>
</html>
ログイン後にコピー

上記のコード例を通じて、画像カルーセルとスライド効果を実現するための JavaScript 関数の使用を実装しました。具体的な実装プロセスを紹介しました。これらのテクノロジーは、Web ページのインタラクションやアニメーション効果を改善するのに非常に役立ち、読者は実際のニーズに応じて変更および最適化することができ、開発能力を継続的に向上させることができます。

以上がJavaScript 関数を使用して画像カルーセルとスライドショー効果を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート