表情层弹出后,点击之外区域层消失
标题描述不清,是要实现这样一个功能。相信大家都玩过新浪微博,在发微博时,你可以选择添加表情,如下图,点击红框内的区域,表情层不消失,而点击之外区域,表情层消失。
实现的方法很多,我暂且想到三种:
- 检测鼠标的位置是不是红框区域内,第一次做这样功能时就采用这种方法,笨了点
- 根据点击元素的target.id作判断,不过当层的内容为动态获取时,不可取
- 为红色div层添加click事件,事件内阻止冒泡,document中的click就不会执行,这个方法最简洁
下面是方法3的部分代码,html代码:
<p><button id="btnPop" type="button" onclick="return showPopup();">弹出div层</button></p><div id="popup" class="popup"><ul><li><span>css</span></li><li><span>html</span></li><li><span>js</span></li><li><span>csharp</span></li><li><span>sql</span></li></ul></div>
js代码:
document.getElementById("popup").onclick = function(e){e = e || window.event;
if(window.event){e.cancelBubble = true;
} else {
e.stopPropagation();}};document.body.onclick = function(e){e = e || window.event;
var target = e.target || e.srcElement;
if(target.id === "btnPop") return;hidePopup();};
demo演示:表情层弹出后,点击之外区域层消失
---end
作者:清流鱼
出处:http://www.cnblogs.com/qingliuyu/
新浪微博:http://weibo.com/qingliuyu
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗