javascript 分析left,top值出错

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:20:09
var x,y;
var ox,oy;
var move;
function start(evt){
record(evt);
}
function end(evt){
record(evt);
move=null;
}
function record(evt){
var event=window.event?window.event:evt;
var target=event.target?event.target:event.srcElement;
x=event.clienX;
y=event.clienY;
move=$("move");
ox=parseInt(move.style.left);
oy=parseInt(move.style.top);
}
function moving(evt){
var event=window.event?window.event:evt;
var target=event.target?event.target:event.srcElement;
if(move==target){
move.style.left=(event.clienX-x+ox)+"px";
move.style.top=(event.clienY-y+oy)+"px";
}
}
function $(id){
return document.getElementById(id);
}

move是否有left,top初始值,如果没有是取不到的
补充以下:
任何dom都需要在初始化了属性或者css值之后才能取到,当然有些会默认初始化值,比如width和height,因为这些是展示dom的必要条件,另外的值都是要自己初始化的
只要需要top和left的地方,一定是绝对定位,否则这两个值都不存在
如果不是绝对定位,想要获取位置,你只能通过获取偏移位置得到。

预计浏览器得到的值是NaNpx
别忘了left和top属性默认是auto,parseInt('auto')返回NaN