在 JavaScript 中是否有可能在指定点获取一个元素,如果它不在顶部但实际上可见
is it possible in javascript get an element at the specified point if it is not on the top but is actually visible
test.html
图像上有 3 个"层"
<img id=image width=200 height=200 src=http://images.all-free-download.com/images/graphicmedium/water_entertainment_motion_picture_165876.jpg>
<div id=dRed style="position:absolute; border: 2px solid red;
left:50px; top:50px; width:100px; height:100px"></div>
<div id=dGreen style="position:absolute; border: 2px solid green;
left:70px; top:70px; width:60px; height:60px"></div>
<div id=dBlue style="position:absolute; border: 2px solid blue;
left:90px; top:90px; width:20px; height:20px"></div>
document.elementFromPoint(100,100) 返回 dBlue,但用户实际看到的是图像。
是否可以确定图像?
正如 Mozilla 文档所说,方法 elementFromPoint:
从文档中返回元素,其元素FromPoint 方法是 被召唤
然后我做了一个使用这个概念的样本。
<div id="divImg">
<img id=image width=200 height=200 src="<image_url>">
</div>
我将图像放在div divImg
中。
document.getElementById('divImg').addEventListener("mouseover", function(e){
console.log(document.elementFromPoint(e.x,e.y).id);
});
我在div 中添加了一个侦听器,因此当触发divImg
的事件时mouseover
我调用elementFromPoint
。
我希望这对你有所帮助。
更新:仔细查看elementFromPoint
规范,我看到一个用于禁用元素pointer-events
的 css 属性。然后,要仅获取一个元素,您需要设置其他元素,添加 css 属性pointer-events:none
然后你的html将看到:
<img id=image width=200 height=200 src=http://images.all-free-download.com/images/graphicmedium/water_entertainment_motion_picture_165876.jpg>
<div id=dRed style="pointer-events:none; position:absolute; border: 2px solid red;
left:50px; top:50px; width:100px; height:100px"></div>
<div id=dGreen style="pointer-events:none; position:absolute; border: 2px solid green;
left:70px; top:70px; width:60px; height:60px"></div>
<div id=dBlue style="pointer-events:none; position:absolute; border: 2px solid blue;
left:90px; top:90px; width:20px; height:20px"></div>
相关文章:
- 如果元素's的ID以数字开头
- 如果元素在容器外部,是否可以相对于容器以绝对定位来定位该元素
- setInterval - 如果元素具有类外部间隔
- 如果元素被移除,是否不需要中断setInterval
- 如果元素是在循环中创建的,则引导下拉菜单不会触发单击事件
- jQuery-FadeToggle-如果元素可见或不可见,则执行不同的操作
- 如果元素存在,如何使用 .after() 作为 .html()
- 如果元素高度大于 x 添加类“纵向”,则添加类“横向”
- jQuery 获取搜索选择器,如果元素不存在
- 如果元素不包含“*”,则使用 jQuery 将“*”添加到标签中
- jQuery:如果元素为空,不包括空格和注释
- 如果元素显示:无;在媒体查询中,它们是否仍然加载
- 计数 如果元素出现在两个数组中
- 如果元素未显示在 Angular JS 中,则想隐藏“|”
- 如果元素变得比窗口宽,则在 DIV 中居中元素而不切断左侧内容
- 如果元素不是父元素,我如何向上移动一个元素
- Javascript 如果元素不存在返回,则导致对象不起作用
- 如果元素具有 className1 classFromArray prepend classFromArray
- 如果元素在 jQuery 中将类从一个特定更改为另一个特定类
- 如果元素包含某些文本