【发布时间】:2011-11-12 09:04:57
【问题描述】:
我带着一个有趣的问题来找你。
给定 HTML 文档中的位置 (x,y),如何在给定位置的元素上触发焦点事件。
问题转化为是否有任何方法可以选择与给定位置匹配的元素?
有点像 getElementByPosition?
【问题讨论】:
标签: javascript html events dom
我带着一个有趣的问题来找你。
给定 HTML 文档中的位置 (x,y),如何在给定位置的元素上触发焦点事件。
问题转化为是否有任何方法可以选择与给定位置匹配的元素?
有点像 getElementByPosition?
【问题讨论】:
标签: javascript html events dom
最简单的选择是使用elementFromPoint:
var element = document.elementFromPoint(x, y);
element.focus();
除此之外,您可以编写自己的函数。这是我首先想到的——我在一段时间前使用它,当时elementFromPoint 有一些原因无法正常工作,我不记得到底是什么。可能有更好的方法来做到这一点,但我只是尝试了我首先想到的:
var coords = [100, 100],
elems = document.getElementsByTagName("*");
for(var i = 0; i < elems.length; i++) {
var left = elems[i].offsetLeft,
top = elems[i].offsetTop,
width = elems[i].offsetWidth;
height = elems[i].offsetHeight;
if((left <= coords[0]) && (left + width >= coords[0]) && (top <=coords[1]) && (top + height >= coords[1])) {
elems[i].focus();
}
}
你可以看到它在here工作。
【讨论】:
你可以使用elementFromPoint(x, y)
https://developer.mozilla.org/en/DOM/document.elementFromPoint
【讨论】: