javascript - 窗口中的给定位置是空白或元素存在
问题描述
我需要查找窗口中的特定坐标是空的还是被任何 DOM 元素占用,如果它是空的,我需要动态添加 dom 元素。
for(var i=0;i<100;i++)
{
for(var j=0;j<100;j=j+10)
{
var elem = document.elementFromPoint(i, j);
console.log(elem.id);
}
}
<div id="navenn" style="height:100px;background-color:red">
上面的代码将遍历窗口的坐标,如果一个位置被任何元素占据 elem.id 不应该为空,但在我的情况下它总是空的
elementFromPoint中的x和y参数是什么,代表像素吗?
解决方案
只要您在窗口内搜索坐标,elementFromPoint()
就会返回一个元素。您应该检查它是您插入的元素还是只是文档<html>
元素。
以下是检查特定类的示例:
for (var x = 0; x < 100; x++) {
for (var y = 0; y < 100; y = y + 10) {
var elem = document.elementFromPoint(x, y);
var isItem = elem.classList.contains('item');
console.log(`x: ${x}, y: ${y} - ${isItem ? 'found ' : 'NOT found'}`);
}
}
<div id="navenn" class="item" style="height:100px;background-color:red">
这是一个坐标超过 100 的示例y
(您的 red 的高度<div>
):
for (var x = 0; x < 100; x++) {
for (var y = 0; y < 200; y = y + 10) {
var elem = document.elementFromPoint(x, y);
var isItem = elem.classList.contains('item');
console.log(`x: ${x}, y: ${y} - ${isItem ? 'found ' : 'NOT found'}`);
}
}
<div id="navenn" class="item" style="height:100px;background-color:red">
推荐阅读
- javascript - 每张幻灯片的实时间隔修改
- git - 在本地分支 A 上显示本地分支 B 没有的提交
- mysql - 子查询分组后的内连接优化
- c - 我将如何修改此代码,以便打印从 A 点到 B 点所需路径的输出
- node.js - 我是否需要刷新页面才能获取用户数据?
- python - Numpy:如何在另一个二维数组中找到二维数组的参数
- sql - 使用 count 和 avg 的 SQL 语句
- amazon-web-services - AWS S3 - 安全 URL
- mysql - 如何将 Node App 重新连接到新的 Google Cloud SQL 数据库?
- mitmproxy - 如何使用 mitmproxy 从什么流中获取一些块?