html点击空白区域消失,js如何实现点击空白处让元素消失.

参考下实现的代码~~~

在点击下拉以及选择item时阻止事件冒泡

然后为body添加一个click监听,当事件能冒泡到body时,关闭所有的pop下拉框

Title

body{

width: 100vw;

height: 100vh;

padding: 0;

margin: 0;

}

.action-bar{

position: absolute;

left:0;

top:0;

width: 100%;

height: 50px;

background-color: lightgreen;

display: flex;

justify-content: flex-start;

align-items: center;

}

.select-wrap{

width: 100px;

height: 100%;

box-sizing: border-box;

padding-top: 5px;

padding-bottom: 5px;

position: relative;

padding-right: 10px;

padding-left: 10px;

position: relative;

}

.select-span{

width: 100%;

height: 100%;

border-radius: 5px;

border: 1px solid #cccccc;

box-sizing: border-box;

display: flex;

justify-content: center;

align-items: center;

cursor: pointer;

}

.select-list{

display: none;

position: absolute;

left: 10px;

top: 50px;

width: 100px;

list-style: none;

padding: 5px;

margin: 0;

border: 1px solid red;

}

.select-wrap.active ul.select-list{

display: block;

}

ul.select-list{

list-style: none;

}

ul.select-list li{

background-color: grey;

background-color: grey;

margin-bottom: 5px;

overflow: hidden;

cursor: pointer;

}

$(function(){

$(".select-wrap .select-span").on("click",function(event){

$('body').find(".select-wrap").removeClass("active");

$(this).parents(".select-wrap").toggleClass("active");

event.stopPropagation();

addCloseAllSelectPopListener();

});

$(".select-wrap ").on("click","ul.select-list li",function(event){

console.log($(this).text()+" selected ");

$('body').find(".select-wrap").removeClass("active");

event.stopPropagation();

});

function addCloseAllSelectPopListener(){

$('body').on("click",function closeEventListener(event){

$('body').find(".select-wrap").removeClass("active");

$(event.currentTarget).off("click",closeEventListener);

});

}

});

选择一个

  • 1111111111
  • 2222222222
  • 3333333333

选择一个

  • 1111111111
  • 2222222222
  • 3333333333
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在自动化测试中,如果你需要实现下拉框在点击空白区域后自动收起的功能,首先需要确定你的测试环境和技术栈,因为不同前端框架和自动化工具的定位元素的方式可能会有所不同。 对于大多数前端技术,可以使用以下方法来定位下拉框并模拟点击空白区域的动作: 1. **使用ID定位**:如果下拉框或触发下拉的元素有唯一的ID,可以直接通过ID来定位。 ```javascript const element = document.getElementById('dropdownId'); // 在这里执行点击动作 ``` 2. **使用CSS选择器**:如果下拉框可以通过特定的类名、属性或者组合选择器定位,可以使用CSS选择器。 ```javascript const element = document.querySelector('.dropdown-class'); // 在这里执行点击动作 ``` 3. **使用XPath**:在某些复杂的情况下,可能需要使用XPath来精确定位下拉框。 ```javascript const element = document.evaluate("//div[@class='dropdown-class']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; // 在这里执行点击动作 ``` 4. **使用框架提供的API**:如果你使用的是Selenium、Puppeteer或者其他自动化测试框架,通常会提供相应的API来进行元素定位和操作。 - 例如,在Selenium中,你可以使用 `By` 类配合相应的定位策略: ```java WebElement element = driver.findElement(By.id("dropdownId")); // 在这里执行点击动作 ``` 完成下拉框的定位后,模拟点击空白区域通常需要额外的逻辑来确定点击的位置。如果是页面上的其他元素,可能需要使用相似的定位方法找到这些元素,然后在它们周围模拟点击动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值