この記事の例では、アップロード画像コントロールを実装するための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) の検索機能の例分析
PHP で MySQL サーバーが消えた問題1. 背景以前、Codeigniter でコンソール コ...
ping は成功したがポートにアクセスできない場合のポート可用性検出の説明ポート可用性検出ツールの紹...
この記事で使用されているPHPベースイメージはphp:7.3-apacheです。この記事の Lara...
これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...
目次1. まず、pycharmを使用してDjangoプロジェクトを作成し、関連する環境を設定します。...
目次1. 順番に紹介する2. ユーザーを作成する3. ユーザーアカウントを削除する4. アクセス権5...
1. MySQL 8.0.20をダウンロードして解凍するダウンロードリンク: https://dev...
I. はじめにまず、MySQL のバージョンについて説明します。 mysql> バージョンを選...
mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...
私が長い間遭遇してきた問題を要約してみましょう。プロジェクトでは、フロントエンドをレンダリングするた...
スロットとは何ですか?スロット ディレクティブは v-slot であり、現在 slot と slot...
nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...
数日前、私のウェブサイトがいくつかの IP アドレスから大量の悪意のある標的型スキャンを受け、ブルー...
効果上から下へフェードアウト ソースコードhtml、Angular構文を使用して、必要な構文を取得す...
月曜日から日曜日の時間形式の変換(Y --- 年 M --- 月 D--- 日) : : : : :...