点击页面空白处关闭气泡或弹层

本文介绍了一种使用AngularJS实现的气泡菜单交互效果,包括如何通过点击“更多”按钮展示和隐藏气泡菜单,并确保点击菜单项时不会触发菜单的关闭。此外,还详细解释了如何利用事件冒泡原理来实现这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 点击div(更多)会出现一个气泡

2再次点击div或页面上除了气泡之外的地方,气泡关闭  如下图所示 :


解决方法:

<html>

< div class = " no-solved " id= " moreList " ng-class = " {'active':moreSupply} " ng-click = " moreSomething() " >更多 </ div >
< div class = " bubble " ng-show = " moreSupply " id= " detailList " >
< div class = " tag " ng-model = " bubbleList " >
< div class = " tag-title " ng-click = " doMore() " >指派工程师 </ div >
< div class = " tag-title " ng-click = " doMore() " >驳回 </ div >
< div class = " tag-title " ng-click = " doMore() " >申请挂起 </ div >
< em ></ em >
</ div >
</ div >

</html>

<script>

// 底部气泡框显示和隐藏
// 点击更多显示与隐藏气泡
var oMoreList = document . getElementById ( " moreList " );
oMoreList. addEventListener( " click ", function( event){
$scope. moreSupply = ! $scope. moreSupply;
event = event || window. event;
event. stopPropagation(); // 阻止事件冒泡,防止隐藏
});
// 点击气泡列表不隐藏
var oDetailList = document. getElementById( " detailList ");
oDetailList. addEventListener( " click ", function( event){
$scope. moreSupply = true;
event = event || window. event;
event. stopPropagation();//阻止事件冒泡
});
// 点击页面空白处隐藏气泡
document. addEventListener( " click ", function(){
$scope. moreSupply = false;
$scope. $apply(); // 隐藏气泡
});

</script>

总结:点击气泡里的div时会触发document的监听事件,所以要用event.stopPropagation阻止父级的点击事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值