我來找你一個有趣的問題。觸發重點在給定位置的元素
給定HTML文檔中的位置(x,y),如何在給定位置的元素上觸發焦點事件。
問題轉化爲有沒有辦法選擇匹配給定位置的元素?
有點像getElementByPosition?
我來找你一個有趣的問題。觸發重點在給定位置的元素
給定HTML文檔中的位置(x,y),如何在給定位置的元素上觸發焦點事件。
問題轉化爲有沒有辦法選擇匹配給定位置的元素?
有點像getElementByPosition?
最簡單的方法是使用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
舊的瀏覽器是不是一個問題 –
是的,我知道,我刪除了那句話,你之前評論! –