JS 如何获取控件对应的屏幕坐标

JavaScript025

JS 如何获取控件对应的屏幕坐标,第1张

function getPos(o) //取元素坐标 

    var x = 0, y = 0 

    do { 

        x += o.offsetLeft 

        y += o.offsetTop 

    } while (o = o.offsetParent) 

    return { 'x': x, 'y': y } 

}

1、如图位置是一个html中的可编辑内容的div标签,在里边输入文字,会有一个光标。

2、通过getSelection可以获得一个Selection对象,如图。因为是一个光标,anchor和focus(选择的起点和终点)一样,偏移也一样。

3、如图,则进行文字选择,而且是跨行选择,以第一行为起点,第二行为终点,选择文字。

4、再次getSelection,可以看到anchorNode是起始节点,anchorOffset是起始偏移,focus是结束的。

5、如果从第二行倒着选到第一行,使用getSelection获取选择区域,可以看到anchorNode和focusNode和刚才相比,互换了。

6、使用一个node的textContent属性可以获得文字。结合focusOffset和anchorOffset,实际上可以获取光标/选中区域前后的文字。

7、将起始和结束位置设置为相同,而且都在结束节点的末尾。即变成闪烁光标。