シンプルな画像切り替えを実現するJavaScript

シンプルな画像切り替えを実現するJavaScript

この記事では、JavaScriptで簡単な画像切り替えを実現するための具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

写真を切り替えるには、いくつかの方法があります。

方法1 (初心者向け!わかりやすい)コードは下記に添付されています:

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>画像スイッチ 2</title>
    <スタイル タイプ="text/css">
        *{
            パディング: 0;
            マージン: 0;
        }
        #箱{
            境界線: 1px 実線 #ccc;
            幅: 450ピクセル;
            高さ: 70px;
            パディング上部: 450px;
            背景: url("img/big_pic01.jpg") 繰り返しなし;
        }
        #ボックス ul li{
            フロート: 左;
            左パディング: 10px;
        }
    </スタイル>
</head>
<本文>
    <div id="ボックス">
        <ul>
            <li id="item1">
                <img src="img/pic01.webp">
            </li>
        </ul>
        <ul>
            <li id="item2">
                <img src="img/pic02.webp">
            </li>
        </ul>
        <ul>
            <li id="item3">
                <img src="img/pic03.webp">
            </li>
        </ul>
        <ul>
            <li id="item4">
                <img src="img/pic04.webp">
            </li>
        </ul>
        <ul>
            <li id="item5">
                <img src="img/pic05.webp">
            </li>
        </ul>
    </div>
    <script type="text/javascript">
        //初心者向けの書き方 // 1. イベントソースを取得する var item1 = document.getElementById("item1");
        var item2 = document.getElementById("item2");
        var item3 = document.getElementById("item3");
        var item4 = document.getElementById("item4");
        var item5 = document.getElementById("item5");
        var oBos = document.getElementById("ボックス");

        // 2. イベントを追加する item1.onmouseover = function (){
         //マウスを関連 ID の上に置くと、画像を指すパスが変更されます oBos.style.background = "url('img/big_pic01.jpg') no-repeat";
        }
        item2.onmouseover = 関数 (){
            oBos.style.background = "url('img/big_pic02.jpg') 繰り返しなし";
        }
        item3.onmouseover = 関数 (){
            oBos.style.background = "url('img/big_pic03.jpg') 繰り返しなし";
        }
        item4.onmouseover = 関数 (){
            oBos.style.background = "url('img/big_pic04.jpg') 繰り返しなし";
        }
        item5.onmouseover = 関数 (){
            oBos.style.background = "url('img/big_pic05.jpg') 繰り返しなし";
        }

    </スクリプト>
</本文>
</html>

上記の JS コードは扱いにくく、コードの冗長性が生じやすい可能性があります。

次に、いくつか変更を加えて方法 2 を見てみましょう。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>画像スイッチ 2</title>
    <スタイル タイプ="text/css">
        *{
            パディング: 0;
            マージン: 0;
        }
        #箱{
            境界線: 1px 実線 #ccc;
            幅: 450ピクセル;
            高さ: 70px;
            パディング上部: 450px;
            背景: url("img/big_pic01.jpg") 繰り返しなし;
        }
        #ボックス ul li{
            フロート: 左;
            左パディング: 10px;
        }
    </スタイル>
</head>
<本文>
    <div id="ボックス">
        <ul>
            <li id="item1">
                <img src="img/pic01.webp">
            </li>
        </ul>
        <ul>
            <li id="item2">
                <img src="img/pic02.webp">
            </li>
        </ul>
        <ul>
            <li id="item3">
                <img src="img/pic03.webp">
            </li>
        </ul>
        <ul>
            <li id="item4">
                <img src="img/pic04.webp">
            </li>
        </ul>
        <ul>
            <li id="item5">
                <img src="img/pic05.webp">
            </li>
        </ul>
    </div>
    <script type="text/javascript">

        // 1. イベントソースを取得します。これにより、var 定義プロセスが大幅に削減されます。function $(id){
            戻り値の型は id === "string" ですか?document.getElementById(id):null;
        }
        // 背景画像を変更します。liId は指し示される ID であり、imgSrc は関数 changebgcImg(liId,imgSrc){ で背景画像を渡すためのパラメータです。
            // 2. イベントを追加 $(liId).onmouseover = function (){
                // 3. 背景画像を変更します $("box").style.background = imgSrc;
            }
        }
        changebgcImg("item1",'url("img/big_pic01.jpg") 繰り返しなし');
        changebgcImg("item2",'url("img/big_pic02.jpg") 繰り返しなし');
        changebgcImg("item3",'url("img/big_pic03.jpg") 繰り返しなし');
        changebgcImg("item4",'url("img/big_pic04.jpg") 繰り返しなし');
        changebgcImg("item5",'url("img/big_pic05.jpg") 繰り返しなし');

    </スクリプト>
</本文>
</html>

ご覧のとおり、方法 2 では方法 1 よりも JS コードが少なくなります。

上記の変更に続いて、方法 3 を検討します。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>画像切り替えフルバージョン</title>
    <スタイル タイプ="text/css">
        *{
            パディング: 0;
            マージン: 0;
        }
        #箱{
            境界線: 1px 実線 #ccc;
            幅: 450ピクセル;
            高さ: 70px;
            パディング上部: 450px;
            背景: url("img/big_pic01.jpg") 繰り返しなし;
        }
        #ボックス ul li{
            フロート: 左;
            左パディング: 10px;
        }
    </スタイル>
</head>
<本文>
    <div id="ボックス">
        <ul>
            <li class="item">
                <img src="img/pic01.webp">
            </li>
        </ul>
        <ul>
            <li class="item">
                <img src="img/pic02.webp">
            </li>
        </ul>
        <ul>
            <li class="item">
                <img src="img/pic03.webp">
            </li>
        </ul>
        <ul>
            <li class="item">
                <img src="img/pic04.webp">
            </li>
        </ul>
        <ul>
            <li class="item">
                <img src="img/pic05.webp">
            </li>
        </ul>
    </div>
    <script type="text/javascript">
        // 1. イベントソース関数 $(id){ を取得する
            戻り値の型は id === 'string' ですか? document.getElementById(id):null;
        }
        // 以下の item という名前の li タグをすべて取得します。var items = document.getElementsByClassName("item");
        // コンソールログ(アイテム);
        (var i=0;i<items.length;i++){
            var アイテム = items[i];
            アイテムのインデックス = i+1;
            items[i].onmouseover = 関数 (){
                $("box").style.background = `url("img/big_pic0${this.index}.jpg") 繰り返しなし`
                // ${i} を直接設定することはできませんが、関数内で呼び出される i はグローバル変数であり、for ループの後は常に i が 5 を指すため、変数 item を再定義する必要があります。
                // $("box").style.background = `url("img/big_pic0${i}.jpg") 繰り返しなし`
            }
        }
    </スクリプト>
</本文>
</html>

3 つの方法すべてで画像切り替え効果を実現できます (画像が多く、表示する画像の数が同じでない場合は、最初の方法は推奨されません)。画像切り替え効果は次のとおりです。

画像切り替え効果を実装したブログ記事もあります。使用されている方法は、これら3つとは少し異なります。参照していただければ結構ですので、ここではマージしません。Taobao商品画像切り替え効果を実装するJavaScript

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

以下もご興味があるかもしれません:
  • 最もシンプルな js 画像切り替え効果実装コード
  • html+css+jsで実装されたシンプルな画像切り替え効果
  • 背景画像切り替え効果を実現する Pure js コード
  • 矢印をクリックして画像を切り替えるシンプルな js コード
  • CSS画像切り替え効果コード[jsなし]
  • フラッシュなしの純粋なjs、捜狐女性チャンネルのFLASH画像切り替え効果コードを模倣
  • 画像切り替えのスライド効果を実現するJavaScriptのソースコード
  • 画像切り替え効果を実現するJavaScript
  • js マウスクリック画像切り替え効果コード共有
  • JSは画像切り替え効果を実現します

<<:  Docker での Jenkins と Docker を使用した継続的デリバリー

>>:  Nginx リバース プロキシを使用して go-fastdfs を実行する例

推薦する

HTML における if 判断の使用

Django Web開発の過程で、HTMLを書く際にバックエンドから同じ名前のリスト変数が渡されるが...

Docker ログが多すぎてディスクがいっぱいになる場合の対処方法

複数の Docker コンテナがデプロイされたサーバーがあり、各 Docker コンテナが stde...

MySQLクエリステートメント内のユーザー変数のコード分析

前回の記事では、MySQL 最適化の概要 - クエリの合計数を紹介しました。この記事では、クエリ ス...

Linux ファイル記述子、ファイルポインタ、および inode の詳細

目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

Vueカスタムツリーコントロールの使い方の詳細な説明

この記事では、Vueカスタムツリーコントロールの使い方を参考までに紹介します。具体的な内容は次のとお...

Nginx 環境での WordPress マルチサイト構成の詳細な説明

WordPress のマルチサイト機能を使用すると、1 つの WordPress プログラムをインス...

Linux ホスト名設定の詳細な紹介

目次1. Linuxホスト名を設定するクライアントホストを構成するサーバーホストを構成する2. ホス...

CSS で TikTok テキスト揺れエフェクトを実装する例

日々の開発において、フロントエンドの学生はアニメーションやデザインについてよく議論します。デザイナー...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...

MySQLパラダイムの使用に関する詳細な説明

1. パラダイムこのパラダイムの英語名は Normal Form であり、1970 年代にリレーショ...

Tomcat の一般的な例外と解決コードの例

弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...

Antd+vueは円形属性フォームの動的検証のアイデアを実現します

必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...

JavaScript 配列重複排除ソリューション

目次方法1: set: データ型ではなくデータ構造であり、メンバーは一意である方法2: オブジェクト...

Reactベースのコンポーネントのカプセル化の実装手順

目次序文antd はどのようにしてコンポーネントをカプセル化するのでしょうか?ディバイダーコンポーネ...