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 拡張機能を有効にする方法

推薦する

Linux に ASPNET.Core3.0 ランタイムをインストールするためのサンプル コード

# 以下の例は x64 ビット ランタイム v3.0.0 用です mkdir /runtimes ...

vue3.0 sfcのセットアップの変更について簡単に説明します。

目次序文標準的なSFCの書き方スクリプト設定可変露出部品の取り付け小道具カスタムイベント要約する序文...

IE6 での PNG アルファ透明度 (完全コレクション)

IE6 は PNG の透明度をサポートしていないと多くの人が言っています。実際、IE は 100%...

JDBC を使用して MySQL を操作するための簡単な分析では、Class.forName("com.mysql.jdbc.Driver") を追加する必要があります。

導入データベースに接続するためにJDBCを使用することに慣れている場合は、データベースに接続するため...

HTML ページジャンプとパラメータ転送の問題

HTMLページジャンプ: window.open(url, "", "...

jsは水平および垂直スライダーを実現します

最近、練習プロジェクトをしていたときにスライダーを使う必要があったので、調べてみました。まず、水平ス...

vue3 を使用してマテリアル ライブラリを構築する方法

目次なぜマテリアルライブラリが必要なのでしょうか?材質は何ですか?素材の種類fuep、vue3 ベー...

Alibaba Cloud OSS アクセス権設定(RAM 権限制御)実装

シナリオmyBuket の static/material/ ディレクトリなど、Alibaba Cl...

HTML の marquee 属性の詳細な説明

このタグはHTML3.2の一部ではなく、MSIE3以降のカーネルでのみサポートされているため、IEカ...

MySQL は制限を使用してページング例メソッドを実装します

1. 制限の基本的な実装一般的に、クライアントは、pageNo (ページ番号) と pageSize...

DockerでRedisをデプロイして起動する方法

DockerでRedisをデプロイするまずLinuxにDockerをインストールし、次にDocker...

Apache FlinkCEP でタイムアウトステータス監視を実装するための詳細な手順

CEP - 複合イベント処理。ご注文後、一定期間内にお支払いの確認が取れませんでした。タクシーの配...

要素テーブルの多層ネスト表示の実践

複数の注文を含むリストが必要です。各注文は一意にすることも、複数の注文を結合することもできます。各注...

CSSで特殊なグラフィックを描く方法

1. 三角形境界線の設定 コード: 幅: 300ピクセル; 高さ: 300px; 背景: 赤; 境界...