javascript – 从点获取DOM文本节点?

前端之家收集整理的这篇文章主要介绍了javascript – 从点获取DOM文本节点?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
就像我可以从document.elementFromPoint或document.getElementFromPoint得到一个元素,是否可能以某种方式获取文本节点,如果点在文本节点?我猜,如果至少我可以得到文本节点的位置和大小,我可以找出它们中的哪一个包含该点.但是,DOM节点没有位置属性.有可能这样做吗?

解决方法

这是一个在所有当前浏览器中可用的实现:
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;
};
原文链接:https://www.f2er.com/js/154723.html

猜你在找的JavaScript相关文章