javascript - vuejs 失去焦点,单击全局隐藏某些浮动元素
PHPz
PHPz 2017-04-10 18:01:11
[JavaScript讨论组]

先看图,

我们想实现一个这样的功能, 单击高级搜索,弹出一个p,p里面是slot进去的,有各种标签,包括表单元素。再单击其他区域,会隐藏这个弹出的p,类似blur事件。

麻烦给点思路实现这个组件(功能), 写一个这样的组件,弹出框的内容slot进去,里面的表单可以进行操作输入,以及动态渲染dom结点。
请问有朋友实现过类似的功能吗,麻烦给点思路。

PHPz
PHPz

学习是最好的投资!

全部回复(3)
怪我咯

主体上可以看这个vue-weui,对于点击slot区域外,自动关闭弹出框,基本的方法可以是
1.在slot外包裹一个p,position为relative,z-index设置为高于透明遮罩层即可。
2.在点击高级搜索时,在body下append一个透明遮罩层,遮罩层z-index低于弹出的sloat,设置透明遮罩层的click事件为关闭slot。

PHP中文网
//html
<p v-show="isShowDialog">

//js
document.addEventListener('click', (e) => {
  if (!this.$el.contains(e.target)) this.isShowDialog = false;
})
PHPz

我的方案是给document一个点击事件关闭这个弹窗,然后给这个p一个阻止冒泡

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号