美文网首页前端常用技术点
vue实现点击除自身等指定元素外关闭弹出框

vue实现点击除自身等指定元素外关闭弹出框

作者: 赵小空 | 来源:发表于2019-08-28 08:47 被阅读0次
需求: 点击某元素可以关闭打开弹出框,点击弹出框外可以关闭弹出框,点击框内不处理
  // 点击此元素可以显示或者隐藏弹出框
<div @click="showInfo" class="z-nodeal">
        ...
</div>

// 弹出框  点击类名为'z-nodeal'之外的元素才会触发指令绑定函数
<div class="boxinfo" v-show="active1">
    <div v-clickoutside:['z-nodeal']='closeIconBlock' >
                        
    </div>
</div>


methods: {
   showInfo() {
            this.active1 = !this.active1;
    },
   closeIconBlock() {
            if (this.active1) {
                this.active1 = false;
            }
    },
},

// 注册自定义指令
 directives: { clickoutside },

// 自定义指令函数
const clickoutside = {
    bind(el, binding) {
        function handler(e) {
            if (el.contains(e.target) || e.target.className.includes(binding.arg)) {
                return false;
            }
            if (binding.expression) {
                binding.value(e);
            }
        }
        el._zClickOutside = handler;
        document.addEventListener('click', handler);
    },
    unbind(el) {
        // 解除事件监听
        document.removeEventListener('click', el._zClickOutside);
        delete el._zClickOutside;
    }
};

\color{#87ceeb}{觉得有用帮忙点个赞哦!}

相关文章

  • vue实现点击除自身等指定元素外关闭弹出框

    需求: 点击某元素可以关闭打开弹出框,点击弹出框外可以关闭弹出框,点击框内不处理

  • 纯CSS实现点击弹出关闭遮罩层

    预览地址:纯CSS实现点击弹出关闭遮罩层 利用纯css实现可点击弹出以及关闭的登录框,同时也包含一个全屏的遮罩层,...

  • Dialog顶部空白点击后无法关闭Dialog

    问题描述 按照UI设计,需要实现一个靠近底部显示的分享弹出框发现,点击空白区域需要关闭窗口。实现后,发现弹出框顶部...

  • 分享一个非常好用的弹出框小技巧

    相信大家或多或少都会见到这样的需求: 如图所示,点击按钮弹出下面的弹出框,点击空白处或者关闭按钮弹出框就会关闭,但...

  • 【前端案例】15 - 案例:模态框拖拽

    弹出框,我们也称为模态框。 1.点击弹出层,会弹出模态框, 并且显示灰色半透明的遮挡层; 2.点击关闭按钮,可以关...

  • antd使用

    antd button按钮点击事件弹出弹框,弹框点击取消关闭,button按钮奇怪的带有focus样式

  • vue 中的 video 弹框实现

    前言 今天在 vue 项目中需要一个弹框视频的实现,具体需求为:点击按钮,弹出视频框,播放视频。 于是用 elem...

  • vue操作dom元素的三种方法介绍和分析

    相信大家在做项目的时候,肯定会遇到这样的问题:我点击新增按钮,需要弹出个弹框,然后我点击对应的关闭按钮,关闭弹框,...

  • vue操控dom

    相信大家在做项目的时候,肯定会遇到这样的问题:我点击新增按钮,需要弹出个弹框,然后我点击对应的关闭按钮,关闭弹框,...

  • BootStrap[第十六章:弹出框和警告框插件]

    一.弹出框 弹出框即点击一个元素弹出一个包含标题和内容的容器。 弹出框插件有很多属性来配置提示的显示,具体如下: ...

网友评论

    本文标题:vue实现点击除自身等指定元素外关闭弹出框

    本文链接:https://www.haomeiwen.com/subject/pquyectx.html