Vue はカスタム「モーダル ポップアップ ウィンドウ」コンポーネントのサンプル コードを実装します

Vue はカスタム「モーダル ポップアップ ウィンドウ」コンポーネントのサンプル コードを実装します

序文

ダイアログ ボックスは非常に一般的なコンポーネントであり、さまざまな場所で使用されます。通常、組み込みのアラートを使用してダイアログ ボックスをポップアップできますが、設計された図の場合はどうでしょうか。そのため、ダイアログ ボックスを自分で作成する必要があります。詳細な実装プロセスを見てみましょう。

レンダリング

上記のスクリーンショットでは、赤い枠線は「テキスト、アイコン、または画像」が編集可能な部分であることを示しています。

サンプルコード

1. ポップアップコンポーネントquitDialog.vueコンポーネントを作成する

<テンプレート>
  <トランジショングループ名='フェード'>
    <!-- ポップアップウィンドウを終了-->
    <div class="quit_dialog"
         キー= "1"
         @click="isQuit = false"
         v-if="isQuit"
         @touchmove.prevent>
    </div>
    <div class="quit_box"
         v-show="isQuit"
         キー="2">
      <img :src="画像URL"
           :alt="img読み込みヒント">
           <div class="quit_title">{{title}}</div>
      <p>{{コンテンツ}}</p>
      <button class="quit_btn" @click="leftClick">{{btnText}}</button>
      <button class="quit_close" @click="rightClick">{{rightText}}</button>
    </div>
  </トランジショングループ>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  名前: 'ポップアップ'、
  データ () {
    戻る {
      isQuit: false、
      画像URL: ''、
      タイトル: ''、
      コンテンツ: ''、
      btnテキスト: ''、
      右テキスト: ''
    }
  },
  メソッド: {
    左クリック(){
      this.leftBtn()
      this.isQuit = false
    },
    右クリック(){
      this.rightBtn()
      this.isQuit = false
    }
  }
}
</スクリプト>
<style lang="scss" スコープ>
// ポップアップウィンドウを終了します。フェードイン、
.フェードアウトアクティブ{
  不透明度: 0;
}
.フェード-エンター-アクティブ、
.フェードアウトアクティブ{
  遷移: 不透明度 0.35 秒;
}
// グローバルポップアップ window.quit_dialog {
  背景: rgba(0,0,0,.5);
  位置: 固定;
  上: 0;
  左: 0;
  高さ: 100%;
  幅: 100%;
  zインデックス: 10000;
}
 
.quit_box {
  幅: 700ピクセル;
  背景: #fff;
  位置: 固定;
  上位: 50%;
  左: 50%;
  左マージン: -350px;
  上マージン: -190px;
  zインデックス: 10001;
  境界線の半径: 10px;
  テキスト配置: 中央;
  パディング: 50px;
  画像{
    幅: 80ピクセル;
  }
 .quit_title{
      色: #666;
      フォントサイズ: 28px;
      マージン: 45px 0px;
  }
  ボタン {
    境界線の半径: 32px;
    パディング:20px 0px;
    フォントサイズ: 26px;
    境界線の半径: 8px;
    幅: 214px;
  }
  .quit_btn{
    色: #03BA82;
    背景: #fff;
    境界線: 1px 実線 #03BA82;
    右マージン: 32px;
  }
  .quit_close {
    背景: 線形グラデーション(0度, #03BA82, #01D695);
    ボックスの影: 0px 3px 4px 0px rgba(1, 84, 58, 0.27);
    境界線: 1px 実線 #03BA82;
    色: #fff;
  }
}
</スタイル>

2. grabDialog.jsを作成する

'vue' から Vue をインポートします
'../components/QuitDialog/QuitDialog' から Grasp をインポートします。
 
const PopupBox = Vue.extend(Grasp)
 
Grasp.install = 関数 (データ) {
  インスタンス = 新しい PopupBox({
    データ
  }).$マウント()
 
  document.body.appendChild(インスタンス.$el)
 
  Vue.nextTick(() => {
    インスタンス.isQuit = true
    // isQuit はポップアップ コンポーネントの isQuit に対応し、可視性を制御するために使用されます})
}
 
デフォルトのGraspをエクスポート

3. グローバル main.js にインポートする

'vue' から Vue をインポートします
'./api/quitDialog' からポップアップをインポートします。
Vue.prototype.$popup = ポップアップ.インストール

4. ページを呼び出すには、関数を呼び出すだけです

メソッド: {
    つかみボタン(){
      これを$grasp({
        imgUrl: require('../../assets/home/quits.png'), // トップ画像。
        imgLoadTip: '画像を読み込んでいます...',
        内容: 「温かいヒント」
        タイトル: 「注意: この学習タスクは完了していません。終了することを確認しますか?」
        btnText: 「残酷な退場」、
        rightText: 「勉強を続ける」
        // 左クリックイベント leftBtn: () => {
          this.$store.dispatch('user/logout').then(() => {
            this.$signalr.LogoutPad()
            this.$signalr.SendMsg(2, 0, 'システムを終了')
            this.$router.push('/login')
          })
        },
        // 右クリックイベント rightBtn: () => {}
      })
    }
}

要約する

これで、Vue でカスタム「モーダル ポップアップ ウィンドウ」コンポーネントを実装する方法に関するこの記事は終了です。Vue でカスタム「モーダル ポップアップ ウィンドウ」コンポーネントに関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueカスタムグローバルポップアップコンポーネント操作

<<:  CSS3 タイムラインアニメーション

>>:  <td></td> タグの境界線スタイルがブラウザに表示されない問題の解決方法

推薦する

Docker で Node プロジェクトをビルドしてデプロイする方法

目次DockerとはクライアントサイドDocker基本的なDocker操作画像名画像をプルするその他...

Webデザインチュートリアル(7):Webデザインの効率化

<br />前の記事:Webデザインチュートリアル(6):デザインへの情熱を持ち続けまし...

VueプロジェクトにPWAを導入する手順

目次1. 依存関係をインストールする2. vue.config.js ファイルで pwa を設定しま...

mysql8.0.11クライアントがログインできない問題の解決方法

この記事では、mysql8.0.11クライアントがログインできない問題の解決策を紹介します。参考まで...

Flinkのフォールトトレラントメカニズムに関する簡単な説明:ジョブ実行とデーモン

目次1. ジョブ実行のフォールトトレランス1.1 タスクフェイルオーバー戦略1.2 ジョブ再開戦略2...

vitrualBox+ubuntu16.04 python3.6 最新チュートリアルと詳細な手順のインストール

最近ディープラーニングを学ぶためにUbuntu+Python 3.6バージョンを使う必要があるため、...

JavaScript の基本変数

目次1. 変数の概要1.1 変数のメモリへの保存1.2 変数の使用1. 変数を宣言する2. 譲渡3....

MySQL 5.7 と Mac 上の MySql の詳細なインストール図をダウンロードする

1.ブラウザに次のアドレスを入力します参考: 2. 次のインターフェースに入ります。下の場所をクリッ...

MySQL 重複インデックスと冗長インデックスの例の分析

この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...

vue.js 動的コンポーネントの詳細な説明

:動的コンポーネントv-bind:is="component name" を使用...

Vueコンポーネントの基本のまとめ

コンポーネントの基本1 コンポーネントの再利用コンポーネントは再利用可能な Vue インスタンスです...

Nginx http ヘルスチェック構成プロセス分析

パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...

HTML Webページの例を使用してヘッドエリアコードの意味を説明する

例を使って、Webページのヘッダー情報の意味を理解しましょう。 <!DOCTYPE HTML ...

W3C チュートリアル (10): W3C XQuery アクティビティ

XQuery は、XML ドキュメントからデータを抽出するための言語です。 XQuery は、XML...