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

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

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、付费专栏及课程。

余额充值