Vant アップローダーは、画像をアップロードするためのドラッグ アンド ドロップ機能を実装します (カバーとして設定)

Vant アップローダーは、画像をアップロードするためのドラッグ アンド ドロップ機能を実装します (カバーとして設定)

効果図は以下のとおりです。

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>ドキュメント</title>
    <link rel="スタイルシート" href="public/vant/index.css" rel="外部nofollow" >
    <script src="public/vue.min.js"></script>
    <script src="public/vant/vant.min.js"></script>
    <script src="public/sortable/Sortable.min.js"></script>
    <script src="public/draggle/vuedraggable.umd.js"></script>

</head>
<スタイル>
    .img_uploader{display: flex;}
    .img_upload span {display: -webkit-box;display: -webkit-flex;display: flex;-webkit-flex-wrap: wrap;flex-wrap: wrap;}
    .img_upload_item {位置: 相対;マージン: 0 8px 8px 0;カーソル: ポインター;}
    .preview-cover {position: absolute;bottom: 0;box-sizing: border-box;width: 100%;padding: 4px;color: #fff;font-size: 12px;text-align: center;background: rgba(0, 0, 0, 0.3);}
    .van-image__error、.van-image__img、.van-image__loading {object-fit: cover;}
</スタイル>

<本文>
    <div id="アプリ">
        <div class="img_uploader">
            <van-uploader :after-read="onRead"> </van-uploader>
            <draggable class="img_upload" v-model="fileList" :group="{name:'imgs'}" @end="end" animation="200">
                <遷移グループ>
                    <div class="img_upload_item" v-for="(item,index) in fileList" :key="index" @click="previewImg(fileList,index)">
                        <div class="van-image van-uploader__preview-image">
                            <img :src="item.content" alt="画像" class="van-image__img">
                            <div class="van-uploader__preview-cover">
                                <div class="preview-cover van-ellipsis" v-if="index == 0">カバー画像</div>
                            </div>
                        </div>
                        <div class="van-uploader__preview-delete" @click="delImg(index)">
                            <i class="van-icon van-icon-cross van-uploader__preview-delete-icon"></i>
                        </div>
                    </div>
                </トランジショングループ>
            </ドラッグ可能>
        </div>
    </div>
</本文>
<スクリプト>
    var アプリ = 新しい Vue({
        el: "#app",
        コンポーネント:
            vuedraggable: window.vuedraggable, //現在のページにドラッグコンポーネントを登録します},
        データ() {
            戻る {
                ファイルリスト: [
                    {コンテンツ: 'https://img01.yzcdn.cn/vant/leaf.jpg',名前: '12'},
                    {コンテンツ: 'images/banner1.png',名前: '12'},
                    {コンテンツ: 'images/banner2.png',名前: '12'},
                    {コンテンツ: 'images/banner3.png',名前: '12'},
                    {コンテンツ: 'images/banner4.png',名前: '12'},
                ]、
            }
        },
        メソッド: {
            // 画像を削除する delImg(index) {
                if (isNaN(index) || index >= this.fileList.length) {
                    偽を返す
                }
                tmp = [] とします
                (i = 0、len = this.fileList.length、i < len、i++) {
                    if (this.fileList[i] !== this.fileList[index]) {
                        tmp.push(this.fileList[i])
                    }
                }
                this.fileList = tmp
            },
            onRead(file) { // 画像を画像サーバーにアップロードします this.fileList.push(file) 
                console.log(ファイル)
            },
            // クリックしてプレビューします previewImg(images, index) {
                listSrc = [] とします。
                this.fileList.forEach(function(v,i){
                    listSrc.push(v.content)
                })
                vant.ImagePreview({
                    画像:listSrc、
                    開始位置: インデックス、
                    閉じることができる:true
                });
            },
            // ドラッグが終了したらドラッグしたデータを取得します end(e) {
                var _oldIndex = e.oldIndex
                var _oldItem = this.fileList[_oldIndex]
                コンソールにログを記録します。
            },
        }
    })
</スクリプト>

</html>

これで、vant uploader を使用してドラッグ アンド ドロップで写真をアップロードする (カバーとして設定する) 方法についての説明は終了です。vant uploader を使用して写真をアップロードする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vant Uploaderは1枚以上の写真をアップロードするコンポーネントを実装します
  • モバイル端末上のVue+Vantのアップローダーは、画像のアップロード、圧縮、回転の機能を実現します。

<<:  HTML テーブル マークアップ チュートリアル (38): ヘッダーの境界線の色属性 BORDERCOLOR

>>:  mysql と oracle のデフォルトのトランザクション分離レベルの説明

推薦する

Mysql5.7 のルートパスワードを忘れた場合の対処法 (シンプルで効果的な方法)

前回の記事では、MySQL 5.7でルートパスワードを忘れた場合と、MySQL 5.7でルートパスワ...

MySQL の条件文で 1 つの情報しか読み取れない問題に対する 2 つの解決策

今日、私の同僚が MYSQL クエリ ステートメントの作成時に非常に奇妙な問題に遭遇しました。MyS...

Spark RDD をデータフレームに変換し、それを MySQL に書き込む例

DataframeはSpark 1.3.0で導入された新しいAPIで、Sparkで大規模な構造化デー...

Mybatis+mysqlはストアドプロシージャを使用してシリアル番号実装コードを生成します。

同時操作によるデータの重複を避けるために、データベースを操作するときにストアドプロシージャを使用して...

Ace をベースにした Markdown エディターを共有する

エディターは 2 つのカテゴリに分かれていると思います。1 つは、即時レンダリングを実現するために左...

Sublime / vscode による HTML コード生成の迅速な実装

目次基本的なHTML構造div とクラス名のショートカット キーを生成するクラス名を持つdiv ID...

HTML初心者や初級者向けの提案。専門家は無視してかまいません。

感想:私はバックエンド開発者です。静的 (HTML) ページを取得すると、ページ構造と命名規則が極端...

nginx を介してローカルでリバースプロキシを構成するプロセス全体

序文Nginx は、イベント駆動型の非同期非ブロッキング処理フレームワークを使用する軽量 HTTP ...

Docker のコンテナ データ ボリュームの概要

目次Dockerコンテナのデータ量データボリュームの使用方法1: コマンド-vを使用して直接マウント...

MySQL における USING と HAVING の使用法の簡単な分析

この記事では、例を使用して MySQL での USING と HAVING の使用方法を説明します。...

JavaScript による Web ページ カルーセルの超詳細な実装

目次HTML ページの作成js部分の機能を実装する1. 左ボタンと右ボタン2. 小さな円を動的に生成...

Zookeeper 不正アクセス テストの問題

目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...

Tomcatサーバーのセキュリティ設定方法

Tomcat は、Java Community Process を通じて Sun が開発した、広く使...

Element-ui NavMenuサブメニューを使用して再帰的に生成する場合のエラーの詳細な説明

ナビゲーションバーのサブメニューを再帰的に生成すると、メニューは正常に生成できるが、マウスをホバーす...

JavaScript を使用して QR コードを解析する 3 つの方法

目次1. JavaScriptを使用してQRコードを解析する1. QR コードとは何ですか? 2.q...