javascript - 在给定位置触发对元素的关注

标签 javascript html events dom

我带着一个有趣的问题来找你。

给定 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 .

关于javascript - 在给定位置触发对元素的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7338096/

相关文章:

c# - 调用事件,h(args) vs EventName?.Invoke()

javascript - 按首字母从数组中查找和删除元素

javascript - 如何在页面中搜索单词并突出显示它们(JQuery)

Javascript 打印不适用于 css 更改

javascript - 获取 JQuery UI 上下文菜单中源元素的属性

javascript - 如何使输入密码至少需要一个特殊字符(包括括号)

Jquery 事件列表按日期排序

javascript - 在JS函数中使用 'this'来更新innerHTML

javascript - 如何为递归循环html Canvas 添加延迟

javascript - 检测浏览器功能和鼠标和触摸的选择性事件