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

推薦する

Vue3はフロントエンドのログを出力するためにaxiosインターセプターを使用する

目次1. はじめに2. axiosインターセプターを使用してフロントエンドログを出力する1. はじめ...

HTML CSS を使用して div またはテーブルを指定した位置に固定する方法

CSSコードコンテンツをクリップボードにコピー.bottomTable{背景色: rgb (249,...

アイデアコンパイラvueインデントエラー問題シナリオの分析

プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...

ピクセルを包括的なブランド体験に変えるヒント

編集者:この記事では、インタラクティブデザインがブランドコミュニケーションチェーン全体で果たすべき役...

Dockerがログファイルを保存する場所の詳細な説明

目次ログはどこに保存されますか?コンテナ内のアプリケーションからのログを表示するDockerデーモン...

ウェブサイトのユーザビリティとコンバージョン率を向上させる 25 のツール

ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...

MySQL 8.0 で列を素早く追加する方法

序文: MySQL 8.0 では高速な列追加がサポートされ、数秒で大きなテーブルにフィールドを追加で...

Linux サーバー上のローカル静的リソースにアクセスするために nginx を使用する方法

1. ポート 80 が占有されているかどうかを確認します。通常、ポート 80 は Apache サー...

MySQL で不明なフィールド名を回避する方法

序文この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介し...

理論の普及——ユーザーエクスペリエンス

1. 概念分析 1: UE ユーザー エクスペリエンス <br />英語ではユーザー エ...

Mybatis mysqlの削除操作では、最初のデータメソッドのみを削除できます。

バグ図のように、削除文とパラメータをデータベースにコピーして実行し、2つのデータを削除しようとしたの...

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

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

入力ボックスのプレースホルダーテキストのデフォルトの色を変更する -webkit-input-placeholder メソッド

HTML5 では、入力用のネイティブ プレースホルダー属性が追加されており、これは高度なブラウザでサ...

MySQL で日付を保存するためのベスト プラクティス ガイド

目次序文時間型を保存するのに文字列を使用しないでくださいMySQL の日付型日時タイムスタンプTIM...

ページングのどのページでMySQLのレコードをクエリするか

序文実際には、次のような問題に遭遇する可能性があります。特定のレコードの ID がわかっていて、その...