vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
vue如何简单的实现弹框,遮罩,点击其他区域关闭弹框,简单的思路是以一个div作为遮罩,控制其的v-if(v-show)即可,掌握到技巧既可以任意扩展。
v-if是直接删除dom节点,就是这个div就不存在了
v-show是控制dom的css样式设置为display:none;来实现,dom还是存在;
实现如下
maskshow来控制控制遮罩的显示隐藏,绑定一个时间点击遮罩的时候关闭它
有一个弹框它的显示和遮罩一样,里面有个关闭按钮也可以关闭弹框,函数里只需要将maskShow值取反即可
其他方法
点击时候触发该方法,判断点的区域
hidePanel(event){ letdom=document.getElementById("child"); if(dom){ if(!dom.contains(event.target)){ //这句是说如果我们点击到了id为child以外的区域 this.maskShow=false; } } }
全部代码如下