Vue——页面监听事件(窗点击页面弹外关闭)

描述:我的需求图下:点击按你牛后显示pdf弹窗,点击弹窗外围影藏弹窗。分两个点:

1:pdf弹窗的创建。

2:显示pdf弹窗,创建监听事件(监听页面点击,执行后隐藏弹窗同时取消监听事件

安装pdfObject:过程简单直接:npm i pdfobject --save

创建pdf弹窗代码如下:

<div ref='pdfDiv' id='pdfBox' class="pdf-box" v-show="showPdfBox"></div>

样式:

.pdf-box{ 
  background-color: #003366;
  position: fixed;
  top: 0;
  left: 0;
  transform: translate(50%, 50%);
  z-index: 2;
  width: 54.8vw;
  height: 52vh;
}

事件:


// 显示弹窗并加载文档
funcProjectFile(event){
    //阻止冒泡
    event || (event = window.event);
    event.stopPropagation ? event.stopPropagation() : (event.cancelBubble = true);
    this.funcInitProjectPage();
    this.butIndex = 1;
    this.childButIndex = 12;

    this.showPdfBox = true;
    // 加载pdf文档 #pdfBox对应上面
    PDFObject.embed("https://pdfobject.com/pdf/sample-3pp.pdf", "#pdfBox");
    document.addEventListener('click', this.hidePanel, false);
},
// 关闭弹窗点击监听
hidePanel(e) {
    console.log("销毁关闭pdf的监听事件。")
    document.removeEventListener("click", this.hidePanel, false);
    this.showPdfBox = false;
},

说明:我是用if-show创建的整个vue组件。我的取消监听事件放在了显示弹窗里面,这样能保证显示弹窗后点击监听才开始,关闭弹窗后改点击事件也移除了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值