2009-12-15 31 views
1

我在Internet Explorer 8和Firefox 3.5中的Prototype的cumulativeOffset函数中得到了不同的值,这些值在具有多个元素的复杂布局中具有填充和边距。使用原型的偏移高度

这似乎是一个已知的错误:Discussion

是否有人知道的可靠地确定一个静态定位元件的偏移高度基于原型或原型兼容的方法?

回答

5

下面是Kangax's cheat sheet的示意图,他是Prototype DEV团队的成员之一。

alt text http://preview.moveable.com/JM/dev/prototype_cheatsheet_1.6.0.png

您可以添加视偏移和滚动偏移,但我不知道这会含有相同的问题。

大部分时间我用这个Quirksmode script查找元素的位置:

function findPos(obj) { 
    //find coordinates of a DIV 
    var curleft = curtop = 0; 
    if (obj.offsetParent) { 
     curleft = obj.offsetLeft 
     curtop = obj.offsetTop 
     while (obj = obj.offsetParent) { 
      curleft += obj.offsetLeft 
      curtop += obj.offsetTop 
     } 
    } 
    return [curleft, curtop]; 
} 
+0

的怪异模式脚本工作正常,我想我会使用。谢谢! – 2009-12-15 22:25:50

+0

对于任何不知道的人来说,Quirksmode是jQuery背后的人的博客,所以这是一个公平的选择,当它是一个选项时直接使用jQuery会产生类似的结果(可能使用相同的代码进行测量)。 – jinglesthula 2013-06-06 19:28:52

+0

quirksmode脚本在FF/IE/Chrome中工作良好,直到我为添加边框顶部为止。那么我在FF/IE/Chrome中获得完全不同的(!)值:( – nerdess 2013-08-23 12:51:47