Javascript 在视口外的点获取元素
Javascript get element at point outside viewport
是否有类似于document.elementFromPoint(x,y)的东西适用于视口之外的元素?
根据 document.elementFromPoint() 的 MDN 文档 (https://developer.mozilla.org/en-US/docs/DOM/document.elementFromPoint)
如果指定的点在文档的可见边界之外 或者任一坐标为负,则结果为空。
因此,如果您试图抓取用户视口之外的元素,显然它是行不通的。
谢谢!
嘿,
我遇到了同样的问题,如果元素不在视口的当前范围内,elementFromPoint
将返回null
。
我发现您必须滚动到元素位置才能使其在视口中可见,然后执行elementFromPoint
.
(function() {
'use strict';
var api;
api = function(x,y) {
var elm, scrollX, scrollY, newX, newY;
/* stash current Window Scroll */
scrollX = window.pageXOffset;
scrollY = window.pageYOffset;
/* scroll to element */
window.scrollTo(x,y);
/* calculate new relative element coordinates */
newX = x - window.pageXOffset;
newY = y - window.pageYOffset;
/* grab the element */
elm = this.elementFromPoint(newX,newY);
/* revert to the previous scroll location */
window.scrollTo(scrollX,scrollY);
/* returned the grabbed element at the absolute coordinates */
return elm;
};
this.document.elementFromAbsolutePoint = api;
}).call(this);
只要坐标是绝对的,就可以简单地使用此命令 pageX
pageY
。
document.elementFromAbsolutePoint(2084, 1536);
此代码也在 GitHub 上打包成一个 bower 组件,以便于包含在项目中。
https://github.com/kylewelsby/element-from-absolute-point
希望这对您的项目有所帮助。
相关文章:
- 如何在jQuery中获取元素的形式
- 通过id和class属性获取元素
- Javascript:Can't使用getElementById获取元素
- 使用jquery.html()获取元素本身的html
- 如何从iframe内部获取元素
- Javascript函数获取元素内容
- 使用模板后,使用Angular获取元素属性值
- 获取元素类名的部分
- 从JSON.parse获取元素
- 获取元素内部的缩写
- 在不引用文档的情况下使用AngularJS获取元素
- 如何获取元素's的title属性
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- Javascript获取元素背景图像,但消除了“;url()”;
- Javascript:按类获取元素,但跳过某个类
- 当display:none时,getElementById()无法获取元素
- 我的ID获取元素不起作用
- 如何获取元素:使用javascript和CORS悬停背景
- 能够获取元素长度,但不能获取内部 HTML
- 如何使用jQuery在模板kendo UI中获取元素类