この記事の例では、アップロード画像コントロールを実装するためのjsの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 1. ネイティブ入力スタイルを変更するHTML構造 <div class="カード"> <input id="アップロード" type="ファイル" accept=".jpg" /> <div class="view"> <!-- アップロードが成功した後 --> <div id="imgContainer" class="img-container"> <画像id="画像" /> <!-- マウスを動かすとビューが表示され、操作が削除されます--> <div class="img-mask"> <span id="showImg">表示</span> <span id="delImg">削除</span> </div> </div> <!-- アップロードが成功するまで --> <span id="icon">+</span> </div> </div> CSS スタイル .カード{ 位置: 相対的; 幅: 200ピクセル; 高さ: 140px; パディング: 5px; 右マージン: 20px; 境界線: 1px 破線 #d9d9d9; 境界線の半径: 6px; マージン: 300px 自動; } .カード入力{ 位置: 絶対; 左: 0; 上: 0; 幅: 100%; 高さ: 100%; 不透明度: 0; カーソル: ポインタ; } .カード .ビュー { 幅: 100%; 高さ: 100%; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 } .card .view #アイコン { 表示: インラインブロック; フォントサイズ: 30px; } .カード .ビュー .img-コンテナ { 位置: 絶対; 左: 0; 上: 0; 幅: 100%; 高さ: 100%; 表示: なし; } .img-コンテナ画像 { 幅: 100%; 高さ: 100%; } .imgコンテナ .imgマスク { 位置: 絶対; 左: 0; 上: 0; 幅: 100%; 高さ: 100%; 不透明度: 0; 背景: rgba(0, 0, 0, .3); 遷移: すべて 0.5 秒の緩和; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; アイテムの位置を中央揃えにします。 } .img-コンテナ:hover .img-マスク { 不透明度: 1; } .img-マスクスパン{ 色: #fff; マージン: 0 10px; カーソル: ポインタ; } エフェクト表示 2. 写真をアップロードして表示する入力変更イベントを監視し、画像が正常にアップロードされた後にURLを作成します。 <スクリプト> 定数アップロード = document.getElementById('アップロード'); const imgContainer = document.getElementById('imgContainer'); 定数img = document.getElementById('img'); const icon = document.getElementById('icon'); imgUrl = '' とします。 // 画像が正常にアップロードされた後に URL を作成します upload.onchange = 関数 (値) { const fileList = value.target.files; if (ファイルリストの長さ) { imgContainer.style.display = 'ブロック'; icon.style.display = 'なし'; imgUrl = window.URL.createObjectURL(fileList[0]); テキストファイル img.src } } <スクリプト> アップロード成功後の表示 3. 画像プレビューを実装するモーダルボックスを書く <!-- 画像をプレビューするためのモーダル ボックス --> <div id="モーダル"> <span id="closeIcon">閉じる</span> <div class="content"> <img id="modalImg"> </div> </div> モーダルスタイル /* モーダルスタイル */ #モーダル{ 位置: 固定; 上位: 50%; 左: 50%; 変換: translate(-50%, -50%); 幅: 0; 高さ: 0; ボックスの影: 0 0 10px #d9d9d9; 背景: rgba(0, 0, 0, .3); /* 遷移: すべて .1s のイーズインアウト; */ オーバーフロー: 非表示; } #モーダル.コンテンツ{ ボックスのサイズ: 境界線ボックス; 幅: 100%; 高さ: 100%; パディング: 45px 20px 20px; ディスプレイ: フレックス; コンテンツの中央揃え: 中央; } #モーダル #モーダル画像 { 高さ: 100%; } #モーダル #閉じるアイコン { 位置: 絶対; 上: 10px; 右: 10px; カーソル: ポインタ; } 次に要素を取得し、クリックイベントをリッスンします /* ...上記のコードを続けます*/ 定数 showImg = document.getElementById('showImg'); 定数 delImg = document.getElementById('delImg'); 定数 modal = document.getElementById('modal'); modalImg は、 document.getElementById('modalImg') に格納されます。 closeIcon は、 document.getElementById('closeIcon') に格納されます。 // クリックして画像をプレビューします showImg.onclick = function () { modal.style.width = '100%'; modal.style.height = '100%'; modalImg.src = imgUrl; } // モーダルボックスを閉じる closeIcon.onclick = function () { モーダルスタイルの幅 = '0'; modal.style.height = '0'; modalImg.src = ''; } // アップロードした画像を削除する delImg.onclick = function () { アップロード値 = ''; 画像URL = ''; icon.style.display = 'ブロック'; imgContainer.style.display = 'なし'; } プレビュー効果画像 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: MySQL 正規表現 (regexp と rlike) の検索機能の例分析
mapGettersヘルパー関数mapGettersヘルパー関数は、ストア内のゲッターをローカルの計...
Node-red をデータベース (mysql) に接続するには、まずコンピューターに MySQL ...
この記事では、Fedora 28 に i3 をインストールして簡単に設定する方法を説明します。 1....
プロジェクト中、プログレスバーを実装するために js の requestAnimationFrame...
1.ハードディスクを追加する2. パーティションの状態を確認します: fdisk -l 3. パーテ...
目次プロジェクト紹介:プロジェクトディレクトリ: TabBar 効果のプレビュー: TabBar 実...
この記事では、クリック時にサブメニューを表示するためのJavaScriptの具体的なコードを参考まで...
フロントエンドのレイアウト プロセスでは、水平方向の中央揃えを実現するのは比較的簡単で、通常は ma...
1. vue-cli がプロジェクト パッケージを作成した後にページが空白になる問題の解決方法コマン...
目次序文 👀リサーチを始めましょう🐱🏍オリジナル🧶 indexOf を使用した元の方法の最適化 ✍...
animation-name アニメーション名。複数のアニメーションがバインドされていることを示す...
この記事では、divのドラッグ可能な高さを実現するためのVueの具体的なコードを参考までに共有します...
Nginx は、多くの優れた機能を備えた強力で高性能な Web およびリバース プロキシ サーバーで...
目次1. classList属性2. 実用化以前の JavaScript では、最初にクラス属性を取...
MySQL を学習すると、インストール後にいくつかのデフォルトのデータベースが付属していることに気付...