2011-09-07 39 views
4

我來找你一個有趣的問題。觸發重點在給定位置的元素

給定HTML文檔中的位置(x,y),如何在給定位置的元素上觸發焦點事件。

問題轉化爲有沒有辦法選擇匹配給定位置的元素?

有點像getElementByPosition?

回答

4

最簡單的方法是使用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

+0

舊的瀏覽器是不是一個問題 –

+0

是的,我知道,我刪除了那句話,你之前評論! –

相關問題