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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: HTML テーブル マークアップ チュートリアル (41): テーブル ヘッダーの幅と高さの属性 WIDTH、HEIGHT
>>: Linux システムの仮想ホストで Swoole Loader 拡張機能を有効にする方法
目次1. はじめに2. axiosインターセプターを使用してフロントエンドログを出力する1. はじめ...
CSSコードコンテンツをクリップボードにコピー.bottomTable{背景色: rgb (249,...
プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...
編集者:この記事では、インタラクティブデザインがブランドコミュニケーションチェーン全体で果たすべき役...
目次ログはどこに保存されますか?コンテナ内のアプリケーションからのログを表示するDockerデーモン...
ウェブサイトの場合、ユーザビリティとは、ユーザーが必要な情報を効果的に見つけたり、タスクを完了したり...
序文: MySQL 8.0 では高速な列追加がサポートされ、数秒で大きなテーブルにフィールドを追加で...
1. ポート 80 が占有されているかどうかを確認します。通常、ポート 80 は Apache サー...
序文この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介し...
1. 概念分析 1: UE ユーザー エクスペリエンス <br />英語ではユーザー エ...
バグ図のように、削除文とパラメータをデータベースにコピーして実行し、2つのデータを削除しようとしたの...
必要な項目をループして検証するために、クエリ フォームのいくつかのプロパティを実装したいと考えていま...
HTML5 では、入力用のネイティブ プレースホルダー属性が追加されており、これは高度なブラウザでサ...
目次序文時間型を保存するのに文字列を使用しないでくださいMySQL の日付型日時タイムスタンプTIM...
序文実際には、次のような問題に遭遇する可能性があります。特定のレコードの ID がわかっていて、その...