用这个试下 var mydivTop = document.getElementById("mydiv").style.offsetTop; 象你那样用如果没有指定top或是从css里边继承了top是得不到的
function getAbsolutePosition_Size(node) { if (!(node = document.getElementById(node))) return false; var offsetTop = node.offsetTop; var offsetLeft = node.offsetLeft; var offsetWidth = node.offsetWidth; var offsetHeight = node.offsetHeight; while (node = node.offsetParent) { offsetTop += node.offsetTop; offsetLeft += node.offsetLeft; } return { left: offsetLeft, top: offsetTop, width: offsetWidth, height: offsetHeight } }使用 var a=new getAbsolutePosition_size('divID'); a.left a.top a.width a.height 得到你需要的值
只在ie下运行可以把event参数去了 <div id="unChosed"> <ul> <li onclick="clickitem(event)">- A </li> <li onclick="clickitem(event)">- B </li> <li onclick="clickitem(event)">- C </li> </ul> </div> <script> function clickitem(e){ var evt=e||window.event; var srcEl=evt.target||evt.srcElement; var oParNode=srcEl.parentNode; var aLis=oParNode.getElementsByTagName("li"); var i,nLen=aLis.length,nIndex=-1; for(i=0;i<nLen;i++){ if(aLis[i]==srcEl){ nIndex=i; break; } } alert(nIndex); } </script>
var mydivTop = document.getElementById("mydiv").style.pixelTop; 用这个试试
var mydivTop = document.getElementById("mydiv").style.offsetTop;
象你那样用如果没有指定top或是从css里边继承了top是得不到的
if (!(node = document.getElementById(node))) return false;
var offsetTop = node.offsetTop;
var offsetLeft = node.offsetLeft;
var offsetWidth = node.offsetWidth;
var offsetHeight = node.offsetHeight;
while (node = node.offsetParent) {
offsetTop += node.offsetTop;
offsetLeft += node.offsetLeft;
}
return { left: offsetLeft, top: offsetTop, width: offsetWidth, height: offsetHeight }
}使用 var a=new getAbsolutePosition_size('divID');
a.left
a.top
a.width
a.height 得到你需要的值
<div id="unChosed">
<ul>
<li onclick="clickitem(event)">- A </li>
<li onclick="clickitem(event)">- B </li>
<li onclick="clickitem(event)">- C </li>
</ul>
</div>
<script>
function clickitem(e){
var evt=e||window.event;
var srcEl=evt.target||evt.srcElement;
var oParNode=srcEl.parentNode;
var aLis=oParNode.getElementsByTagName("li");
var i,nLen=aLis.length,nIndex=-1; for(i=0;i<nLen;i++){
if(aLis[i]==srcEl){
nIndex=i;
break;
}
}
alert(nIndex);
}
</script>
用这个试试