就像我可以从一个点获取一个元素document.elementFromPoint或者document.getElementFromPoint,如果该点位于文本节点,是否有可能以某种方式获取文本节点?我想如果至少我可以获得文本节点的位置和大小,那么我可以找出它们中包含哪个点.但是DOM节点没有位置属性.是否可以这样做?
小智 16
这是一个适用于所有当前浏览器的实现:https: //github.com/nuxodin/q1/blob/master/q1.dom.js
document.betaNodeFromPoint = function(x, y){
var el = document.elementFromPoint(x, y);
var nodes = el.childNodes;
for ( var i = 0, n; n = nodes[i++];) {
if (n.nodeType === 3) {
var r = document.createRange();
r.selectNode(n);
var rects = r.getClientRects();
for ( var j = 0, rect; rect = rects[j++];) {
if (x > rect.left && x < rect.right && y > rect.top && y < rect.bottom) {
return n;
}
}
}
}
return el;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |