jsを使用してシンプルなカルーセル効果を実現する

jsを使用してシンプルなカルーセル効果を実現する

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

transform = translateX() を使用した画像の切り替え

<スタイル>
        。箱 {
            位置: 相対的;
            オーバーフロー: 非表示;
            マージン: 200px 自動;
            幅: 600ピクセル;
            高さ: 400px;
        }
        
        .img {
            幅: 3000ピクセル;
            高さ: 400px;
        }
        
        画像 {
            フロート: 左;
            幅: 600ピクセル;
            高さ: 400px;
        }
        
        .btn{
            位置: 絶対;
            上: 350px;
            左: 245px;
            幅: 110ピクセル;
            高さ: 20px;
        }
        
        .dian {
            フロート: 左;
            マージン: 5px;
            幅: 12px;
            高さ: 12px;
            境界線の半径: 50%;
            背景色: rgba(255, 255, 255, 0.3);
            カーソル: ポインタ;
        }
        
        。左、
        。右 {
            表示: なし;
            ボックスのサイズ: 境界線ボックス;
            位置: 絶対;
            上: 150px;
            幅: 50px;
            高さ: 100px;
            背景色: rgba(0, 0, 0, 0.521);
            フォントサイズ: 40px;
            行の高さ: 100px;
            色: #fff;
        }
        
        .box:hover .left,
        .box:hover .right {
            表示: ブロック;
        }
        
        。左 {
            左パディング: 10px;
            左: 0;
        }
        
        。右 {
            右パディング: 10px;
            テキスト配置: 右;
            右: 0;
        }
</スタイル>
<div class="box">
        <div class="img">
            <img src="./img/1.jpeg" alt="">
            <img src="./img/2.jpeg" alt="">
            <img src="./img/3.jpeg" alt="">
            <img src="./img/4.jpeg" alt="">
            <img src="./img/5.jpeg" alt="">
        </div>

        <div class="btn">
            <span class="dian"></span>
            <span class="dian"></span>
            <span class="dian"></span>
            <span class="dian"></span>
            <span class="dian"></span>
        </div>

        <div class="left">&lt; </div>
        <div class="right">&gt;</div>
</div>
<スクリプト>
        var btn = document.getElementsByClassName('btn')[0];
        var imgBox = document.getElementsByClassName('img')[0];
        var imgs = imgBox.getElementsByTagName('img');
        var btnChild = document.getElementsByClassName('dian');

        var k = 0;
        // ボタンにカスタムプロパティを追加します for (var i = 0; i < btnChild.length; i++) {
            btnChild[i].dataset.num = i * 600;
        }
        // デフォルトは最初の画像で、最初のボタンは白です btnChild[0].style.background = 'rgba(255, 255, 255, 0.8)';

        // ボタンをクリックすると画像が切り替わり、ボタンの色も変わります btn.onclick = function(e) {

            e.target.nodeName === 'SPAN' の場合 {
                // まずすべてのボタンをデフォルトの色に設定します for (var i = 0; i < btnChild.length; i++) {
                    btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)';
                }
                // クリックされたボタンの色が変わります k = +e.target.dataset.num;
                コンソールログ(k);
                btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)';
                // 画像を切り替える imgBox.style.transform = `translateX(-${e.target.dataset.num}px)`;
            }
        }

        // 画像の長さを取得します // var imgWidth = +getComputedStyle(imgs[0]).width.slice(0, -2);
        var imgWidth = imgs[0].offsetWidth;


        // タイマーが画像を移動します var interval1 = setInterval(move, 1000);
        var 間隔;



        // 関数は画像を移動し、ボタンを変更します。function move() {
            k += 画像の幅;
            if (k === imgWidth * imgs.length) {
                0 = 0;
            }
            // 画像を移動する imgBox.style.transform = `translateX(-${k}px)`;
            // ボタンの色を変更する for (var i = 0; i < btnChild.length; i++) {
                btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)';
            }

            btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)';


        }


        // タイマーを削除するには、マウスを画像に移動します。var box = document.getElementsByClassName('box')[0];
        box.onmouseover = 関数() {
            間隔をクリアします(間隔1);
            clearInterval(間隔);
        }

        // マウスを外に出すとタイマーが開始されます box.onmouseout = function() {
            間隔 = setInterval(移動、1000);
        }

        var leftBtn = document.getElementsByClassName('left')[0];
        var rightBtn = document.getElementsByClassName('right')[0];

        rightBtn.onclick = 関数() {

            k += 画像の幅;
            if (k === imgWidth * imgs.length) {
                0 = 0;
            }
            // 画像を移動する imgBox.style.transform = `translateX(-${k}px)`;
            // ボタンの色を変更する for (var i = 0; i < btnChild.length; i++) {
                btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)';
            }

            btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)';


        }
        leftBtn.onclick = 関数() {
            k -= 画像の幅;
            (k < 0) の場合 {
                k = 画像の幅 * (画像の長さ - 1);
            }
            imgBox.style.transform = `translateX(-${k}px)`;
            // ボタンの色を変更する for (var i = 0; i < btnChild.length; i++) {
                btnChild[i].style.background = 'rgba(255, 255, 255, 0.4)';
            }

            btnChild[k / 600].style.background = 'rgba(255, 255, 255, 0.8)';


        }
</スクリプト>

効果画像:

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JS は複数のタブを切り替えるカルーセルを実装します
  • カルーセル効果を実現するネイティブJavaScript
  • シンプルなカルーセルの最も完全なコード分析を実装するJavaScript(ES6オブジェクト指向)
  • シンプルなカルーセル チャートを実装するための JavaScript の最も完全なコード分析 (ES5)
  • カルーセルの完全なコードを実装するためのjs
  • ネイティブ js でカルーセルを実装するためのサンプル コード
  • 携帯電話のスライドスイッチカルーセル画像の例をサポートする効果を実現するためのjs
  • JS カルーセル図の実装の簡単なコード
  • js で左右のボタンをクリックして画像を再生する
  • カルーセル例の JavaScript 実装

<<:  MySQLの自動増分IDについて知っておくべきこと

>>:  Tomcat は、Springboot プロジェクトの WAR パッケージの起動時にエラーを報告します: 子の起動時にエラーが発生しました

推薦する

Windows での mysql-5.7.28 のダウンロード、インストール、および構成に関する詳細なグラフィックとテキストのチュートリアル

最近MySQLデータベースのバージョンを変更する必要があり、それを記録するために記事を書きます1. ...

koa2 サービスに SSL を設定する方法

I. はじめに1: SSL証明書私のドメイン名は Tencent Cloud にあります。第 3 レ...

Linux DHCPサービスの詳細な説明

目次1. DHCP サービス (動的ホスト構成プロトコル) 1. 背景2. 概要3. 利点4.DHC...

FileZilla Server の FTP サーバー構成と 425 エラーおよび TLS 警告の解決策の詳細な説明

123WORDPRESS.COM では、FileZilla のダウンロード リンクを提供しています:...

W3C チュートリアル (11): W3C DOM アクティビティ

ドキュメント オブジェクト モデル (DOM) は、プログラムがドキュメントのコンテンツ、構造、およ...

クロスブラウザの問題に対する 5 つの解決策 (要約)

簡単なレビュー: ブラウザの互換性の問題は、しばしば頭痛の種となります。ここでは、これらの問題を回避...

Linux で PCIe のバージョンと速度を確認する方法

PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...

MySQL binlog ログを開く方法

binlog は、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。 bin...

Centos7環境でMySQL 5.6のインスタンスを複数作成する方法の詳細な説明

この記事では、CentOS 7 環境で MySQL 5.6 の複数のインスタンスを作成する方法につい...

ボックスモデルのサイズの詳細な説明は、パディング、マージン、境界の値によって異なります。

ボックス モデルは、要素ボックスの幅と高さ、パディング、境界線、余白のサイズを指定します。境界線の内...

Webpack で環境変数を使用するためのさまざまな正しい姿勢

目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...

JavaScript を使用してページに動的な検証コードを実装する例

導入:現在、プログラム攻撃を防ぐために、ユーザーがログインまたは登録するときに多くの動的検証テクノロ...

Docker は MySQL をインストールし、中国語の文字化けの問題を解決します

目次1. MySQLイメージを取得する2. ダウンロードが完了したか確認する3. MySQLはローカ...

JS のディープコピーとシャローコピーの詳細

目次1. 浅いコピーとはどういう意味ですか? 2. ディープコピーとはどういう意味ですか? 3. デ...

CentOS での Docker の詳細なインストール チュートリアル

DockerにはCEとEEがあり、CE版はコミュニティ版(無料)、EE版はセキュリティを重視したエン...