閑言碎語不用講,直接上代碼
1、vue模塊中的內容
<template> <button class="btn" @click="msg">打開彈窗</button> <!--彈框--> <div class="mask" v-show="msgShow" @click="closeMsg(event)"> <div class="popup"> <button class="app-download" @click="down">下載</button> </div> </div> </template>
需求是點擊除了下載按鈕外的其他地方,關閉彈窗。
2、定義變量
data () { return { msgShow:false } }
3、方法
methods: { msg:function(){ this.msgShow = true; }, closeMsg:function(event){ var btn = document.querySelector(".app-download"); if(btn){ if(!btn.contains(event.target)){ //按鈕.app-download以外的區域 this.msgShow = false; } } }, }
這里要在彈窗上加一個點擊事件closeMsg,實現點擊其他區域關閉彈窗,這個.mask是彈窗的遮罩背景。
這下大家都明白了吧! :-)