本篇內(nèi)容主要講解“vue如何實(shí)現(xiàn)自定義模態(tài)彈窗組件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“vue如何實(shí)現(xiàn)自定義模態(tài)彈窗組件”吧!
創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,集網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營銷、軟文平臺等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計,讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。
一、創(chuàng)建彈窗組件 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>
二、創(chuàng)建 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對應(yīng),用于控制顯隱
})
}
export default Grasp
三、在全局 main.js 引入
import Vue from 'vue'
import Popup from './api/quitDialog'
Vue.prototype.$popup = Popup.install
四、頁面中調(diào)用,只需在函數(shù)中調(diào)用即可
methods: {
graspBtn () {
this.$grasp({
imgUrl: require('//assets/home/quits.png'), // 頂部圖片。
imgLoadTip: '圖片加載中…',
content: '溫馨提示',
title: '注意:該學(xué)習(xí)任務(wù)未完成,是否確認(rèn)退出',
btnText: '殘忍退出',
rightText: '繼續(xù)學(xué)習(xí)',
// 左邊點(diǎn)擊事件
leftBtn: () => {
this.$store.dispatch('user/logout')。then(() => {
this.$signalr.LogoutPad()
this.$signalr.SendMsg(2, 0, '退出系統(tǒng)')
this.$router.push('/login')
})
},
// 右邊點(diǎn)擊事件
rightBtn: () => {}
})
}
}
到此,相信大家對“vue如何實(shí)現(xiàn)自定義模態(tài)彈窗組件”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享標(biāo)題:vue如何實(shí)現(xiàn)自定義模態(tài)彈窗組件
文章地址:http://www.rwnh.cn/article22/jishjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站設(shè)計、網(wǎng)站策劃、用戶體驗(yàn)、App設(shè)計、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)