function getAbsPosition(obj) {
var abs={x:0,y:0}
while(obj!=document.body && obj.offsetParent!=null){
abs.x+=obj.offsetLeft;
abs.y+=obj.offsetTop;
obj=obj.offsetParent;
}
return abs;
}function showOtherInfoToDiv(obj,du,gx,ft,db){ var abs = getAbsPosition(obj);
document.getElementById('allRoomDyInfo').style.left = abs.x;
document.getElementById('allRoomDyInfo').style.top = abs.y+30; 这样的写法。相对于父系的原点。 在IE正常为什么在FF里都跑到浏览器的原点了不在父系原点请问各位怎么改未能
var abs={x:0,y:0}
while(obj!=document.body && obj.offsetParent!=null){
abs.x+=obj.offsetLeft;
abs.y+=obj.offsetTop;
obj=obj.offsetParent;
}
return abs;
}function showOtherInfoToDiv(obj,du,gx,ft,db){ var abs = getAbsPosition(obj);
document.getElementById('allRoomDyInfo').style.left = abs.x;
document.getElementById('allRoomDyInfo').style.top = abs.y+30; 这样的写法。相对于父系的原点。 在IE正常为什么在FF里都跑到浏览器的原点了不在父系原点请问各位怎么改未能
取元素坐标,如元素或其上层元素设置position relative,应该getPosition(子元素).y-getPosition(父元素).y
参数:DOM元素
返回值:{x:value,y:value}
document.getElementById('allRoomDyInfo').style.top = (abs.y+30) + "px";
另,给你做了一个示例:<style type="text/css">
#target {
border: 1px solid #9f9f9f; width: 200px; height: 30px;
}
#layer {
width: 200px; height: 220px; border: 1px dotted #0066cc
}
</style>
<div id="layer" style="position: absolute; left:100px; top: 300px">Floating div</div>
<input type="button" value="Click me to position div" onclick="getXY();" />
Check if you want to position here? <input type="text" id="target" />
<script>
function getXY() {
var t = document.getElementById('target'),
l = document.getElementById('layer'),
x = 0, y = 0;
while(t.tagName != 'BODY') {
x += t.offsetLeft;
y += t.offsetTop;
t = t.offsetParent;
}
l.style.left = x;// + "px";
l.style.top = (y + 30);// + "px";
}
</script>