Vue.jsは9グリッド画像表示モジュールを実装します

Vue.jsは9グリッド画像表示モジュールを実装します

Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。

モジュールの実際の効果

9グリッドサムネイル効果

ズームイン後

コード

html

<テンプレート>
<div class="SongList">
//v-for ループを使用してサムネイルをレンダリングします <div class="covers" :style="{display:MinDisplay}">
         <div class="cover" v-for="(img,index) in imgs" :key='img'><img :src="img.src" width="90%" class="min" @click="ZoomIn(index)" alt=""></div>
       </div>
 // 拡大した画像をレンダリングします <div class="max" :style="{display:display}">
            <div @click="ZoomOut" v-for="(img,index) in imgs" :key='img' :class="[index===ShowIndex?'active':'None']" ><img :src="img.src" width="100%"></div>
            //拡大画像の下のナビゲーションマップ <div class="small">
                <div :class="[{'smallActive':index===ShowIndex},'cover-small']" v-for="(img,index) in imgs" :key='img' @click="select(index)" ><img :src="img.src" width="90%"></div>
            </div>
        </div>
    </div>
</テンプレート>

CS

<スタイルスコープ>
    .SongList{
        幅: 40%;
    }
    .カバー{
        ディスプレイ: フレックス;
        コンテンツの両端揃え: スペースの間;
        flex-wrap: ラップ;
    }
    。カバー{
        ディスプレイ: フレックス;
        コンテンツの中央揃え: 中央;
        幅: 33%;
        マージン: 10px 0;
    }
    .分{
        境界線の半径: 10px;
        カーソル: ズームイン;
    }
    .max{
        カーソル: ズームアウト;
        幅: 100%;

    }
    。小さい{
        ディスプレイ: フレックス;
        コンテンツの両端揃え: スペースの間;
        flex-wrap: ラップ;
    }
    .カバー-small{
        ディスプレイ: フレックス;
        コンテンツの中央揃え: 中央;
        幅: 10%;
        マージン: 10px 0;
        不透明度: 0.6;
        カーソル: ポインタ;
    }
    .cover-small:hover{
        不透明度: 1;
    }
    。アクティブ{
        ディスプレイ: フレックス;
    }
    。なし{
        表示: なし;
    }
    .smallActive{
        不透明度: 1;
    }

</スタイル>

ジャバスクリプト

<スクリプト>
    エクスポートデフォルト{
        名前: "SongList",
        データ:関数() {
            戻る {
                表示インデックス:0,
                表示: 'なし'、
                最小表示: 'flex'、
                // Vue テンプレートで v-for ループを使用して画像をレンダリングする場合、画像ファイルのローカルの場所を直接使用することはできません。imgs:[
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                    {"src":require('***.jpg')},
                ]

            };
        },
        方法:{
            ズームイン(i){
               this.display='ブロック';
                this.MinDisplay='なし';
                this.ShowIndex=i;
            },
            ズームアウト(){
                this.display='なし';
                this.MinDisplay='flex';
            },
            選択(i){
                this.ShowIndex=i;


            }
        }
    }

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

以下もご興味があるかもしれません:
  • Vueコンポーネント、モバイル端末の9マスグリッドターンテーブル抽選を実現
  • VUEに基づく九公閣抽選機能
  • jQuery+vue.js で実装された 9 マスパズル ゲームの完全な例 [ソース コードのダウンロード付き]

<<:  HTML テーブル マークアップ チュートリアル (41): テーブル ヘッダーの幅と高さの属性 WIDTH、HEIGHT

>>:  Linux システムの仮想ホストで Swoole Loader 拡張機能を有効にする方法

推薦する

ウェブレスポンシブレイアウトにおけるiframe適応の方法

問題<br />レスポンシブ レイアウトでは、iframe 要素に注意する必要があります...

ネイティブjsはショッピングカートのロジックと機能を実装します

この記事の例では、ショッピングカートのロジックと機能を実装するためのjsの具体的なコードを共有してい...

LinuxとGNUシステムの関係の詳細な説明

目次私たちが毎日実行している Linux システムとは何でしょうか? LinuxカーネルとGNUシス...

HTM と HTML の違いは何ですか? HTM と HTML の違いは何ですか?

Web デザインを学習する過程で、html と htm の関係など、遭遇した多くの問題について深く...

「さらに表示」ボタンによる複数行テキストの切り捨てに関する考察

最近、たまたまこの小さな要件に遭遇しました。昔、JS を使用してこれを処理したことを覚えていますが、...

Word のコンテンツを Web サイトのエディターに直接コピーすることはお勧めしません。

<br />質問: Word のコンテンツを Web サイトのエディターに直接コピーする...

Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

ステップ1: システムのアーキテクチャを確認する dpkg --print-architecture...

テーブルパーティションとパーティション分割とは何ですか?MySqlデータベースパーティションとテーブルパーティション分割方法

1. テーブルとパーティションを分割する必要があるのはなぜですか?日常の開発では、大きなテーブルに遭...

CSS 複数 3 列適応レイアウト実装の詳細な説明

序文従来のWEBレイアウトに沿うため、すべてヘッダーとフッターモードの左・中央・右レイアウトで書かれ...

UbuntuでOpenCVをコンパイルしてインストールする方法

opencv2 の簡単なインストール: conda インストール --channel https:/...

HTML ページ共通スタイル (推奨)

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピーbody、di...

MySQL の列から行への変換、フィールドの結合方法 (必読)

データシート:列から行へ: max(case when then) を使用max---集計関数は最大...

VMware 仮想マシンでの CentOS7 ネットワーク構成 (ホストのワイヤレス インターネット アクセス)

CentOS7 システムを使用するのは今回が初めてで、ネットワーク構成を行う際に多くの問題が発生し...

VMware 仮想マシンで HTTP サービスを確立して分析する手順

1. xshell を使用して仮想マシンに接続するか、仮想マシンに直接コマンドを入力します。以下はx...