91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue如何實現自定義模態彈窗組件

發布時間:2022-02-25 15:26:12 來源:億速云 閱讀:423 作者:iii 欄目:web開發

本篇內容主要講解“vue如何實現自定義模態彈窗組件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“vue如何實現自定義模態彈窗組件”吧!

一、創建彈窗組件 quitDialog.vue 組件

<template>

  <transition-group name='fade'>

    <!-- 退出彈窗 -->

    <div class="quit_dialog"

         key="1"

         @click="isQuit = false"

         v-if="isQuit"

         @touchmove.prevent>

    </div>

    <div class="quit_box"

         v-show="isQuit"

         key="2">

      <img :src="imgUrl"

           :alt="imgLoadTip">

           <div class="quit_title">{{title}}</div>

      <p>{{content}}</p>

      <button class="quit_btn" @click="leftClick">{{btnText}}</button>

      <button class="quit_close" @click="rightClick">{{rightText}}</button>

    </div>

  </transition-group>

</template>

<script>

export default {

  name: 'Popup',

  data () {

    return {

      isQuit: false,

      imgUrl: '',

      title: '',

      content: '',

      btnText: '',

      rightText: ''

    }

  },

  methods: {

    leftClick () {

      this.leftBtn()

      this.isQuit = false

    },

    rightClick () {

      this.rightBtn()

      this.isQuit = false

    }

  }

}

</script>

<style lang="scss" scoped>

// 退出彈窗

.fade-enter,

.fade-leave-active {

  opacity: 0;

}

.fade-enter-active,

.fade-leave-active {

  transition: opacity 0.35s;

}

// 全局彈窗

.quit_dialog {

  background: rgba(0,0,0,.5);

  position: fixed;

  top: 0;

  left: 0;

  height: 100%;

  width: 100%;

  z-index: 10000;

}

.quit_box {

  width: 700px;

  background: #fff;

  position: fixed;

  top: 50%;

  left: 50%;

  margin-left: -350px;

  margin-top: -190px;

  z-index: 10001;

  border-radius: 10px;

  text-align: center;

  padding: 50px;

  img{

    width: 80px;

  }

 .quit_title{

      color: #666;

      font-size: 28px;

      margin: 45px 0px;

  }

  button {

    border-radius: 32px;

    padding:20px 0px;

    font-size: 26px;

    border-radius: 8px;

    width: 214px;

  }

  .quit_btn{

    color: #03BA82;

    background: #fff;

    border: 1px solid #03BA82;

    margin-right: 32px;

  }

  .quit_close {

    background: linear-gradient(0deg, #03BA82, #01D695);

    box-shadow: 0px 3px 4px 0px rgba(1, 84, 58, 0.27);

    border: 1px solid #03BA82;

    color: #fff;

  }

}

</style>

二、創建 graspDialog.js

import Vue from 'vue'

import Grasp from '/components/QuitDialog/QuitDialog'

const PopupBox = Vue.extend(Grasp)

Grasp.install = function (data) {

  let instance = new PopupBox({

    data

  })。$mount()

  document.body.appendChild(instance.$el)

  Vue.nextTick(() => {

    instance.isQuit = true

    // isQuit 和彈窗組件里的isQuit對應,用于控制顯隱

  })

}

export default Grasp

三、在全局 main.js 引入

import Vue from 'vue'

import Popup from './api/quitDialog'

Vue.prototype.$popup = Popup.install

四、頁面中調用,只需在函數中調用即可

methods: {

    graspBtn () {

      this.$grasp({

        imgUrl: require('//assets/home/quits.png'), // 頂部圖片。

        imgLoadTip: '圖片加載中&hellip;',

        content: '溫馨提示',

        title: '注意:該學習任務未完成,是否確認退出',

        btnText: '殘忍退出',

        rightText: '繼續學習',

        // 左邊點擊事件

        leftBtn: () => {

          this.$store.dispatch('user/logout')。then(() => {

            this.$signalr.LogoutPad()

            this.$signalr.SendMsg(2, 0, '退出系統')

            this.$router.push('/login')

          })

        },

        // 右邊點擊事件

        rightBtn: () => {}

      })

    }

}

到此,相信大家對“vue如何實現自定義模態彈窗組件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

镇赉县| 普陀区| 伽师县| 苗栗县| 延吉市| 南华县| 淮安市| 和顺县| 阿瓦提县| 高邮市| 弋阳县| 原阳县| 武宁县| 乌兰察布市| 中江县| 乐平市| 龙里县| 霍邱县| 自贡市| 涞源县| 临沧市| 额济纳旗| 石门县| 庄河市| 郧西县| 华亭县| 望都县| 河曲县| 铜陵市| 德化县| 宜阳县| 修水县| 嘉定区| 乌兰察布市| 青冈县| 遵化市| 同仁县| 陆河县| 泰宁县| 安多县| 石城县|