网页上有个按钮。用如下方式获取其top,left坐标:
function GetPointX(obj) {
var x = 0;
if (obj == null) return 0;
do {
x += obj.offsetLeft;
obj = obj.parentElement;
}
while (obj.tagName!="BODY");
return x;
}
function GetPointY(obj) {
var y = 0;
if (obj == null) return 0;
do {
y += obj.offsetTop;
obj = obj.parentElement;
}
while (obj.tagName != "BODY");
return y;
}可以获取按钮的左上角的left和top坐标。
为了验证正确与否,又用VC取按钮左上角的鼠标坐标:
CPoint curPoint;
GetCursorPos(&curPoint);
ScreenToClient(&curPoint);结果发现2个坐标不相等。不管如何变化窗口大小,2个坐标各自的值是不改变的,这说明我获取的是client内部的相对坐标。可是为什么我鼠标指到按钮左上角得到的坐标和我用js计算出来的坐标不相等呢?如何解决?
function GetPointX(obj) {
var x = 0;
if (obj == null) return 0;
do {
x += obj.offsetLeft;
obj = obj.parentElement;
}
while (obj.tagName!="BODY");
return x;
}
function GetPointY(obj) {
var y = 0;
if (obj == null) return 0;
do {
y += obj.offsetTop;
obj = obj.parentElement;
}
while (obj.tagName != "BODY");
return y;
}可以获取按钮的左上角的left和top坐标。
为了验证正确与否,又用VC取按钮左上角的鼠标坐标:
CPoint curPoint;
GetCursorPos(&curPoint);
ScreenToClient(&curPoint);结果发现2个坐标不相等。不管如何变化窗口大小,2个坐标各自的值是不改变的,这说明我获取的是client内部的相对坐标。可是为什么我鼠标指到按钮左上角得到的坐标和我用js计算出来的坐标不相等呢?如何解决?
改成
obj = obj.offsetParent;