当一个孩子进入一个有溢出和边框的父母时,FF 和 IE 给出不同的 offsetTop。FF 从 offsetTop 值中减去父级的上边框大小,因此返回一个负值(经常);我认为 IE 会返回正确的值。
有没有一种跨浏览器的方式来获得相同的值?
谢谢你。
当一个孩子进入一个有溢出和边框的父母时,FF 和 IE 给出不同的 offsetTop。FF 从 offsetTop 值中减去父级的上边框大小,因此返回一个负值(经常);我认为 IE 会返回正确的值。
有没有一种跨浏览器的方式来获得相同的值?
谢谢你。
该offsetTop
属性给出了相对于偏移父级的位置。Fx 和 IE 之间的区别在于,在这种情况下,它们使用不同的元素作为偏移父元素。
我不确切知道溢出如何影响这一点,而且我还没有在定义中找到任何关于它的内容。但是,IE 中有一个已知的错误,它使偏移父级错误,它可能是您在此处看到的该错误的变体。
这似乎是自 2005 年以来一直开放的 Firefox 中的一个错误。问题似乎是 offsetTop 没有明确的规范。
https://bugzilla.mozilla.org/show_bug.cgi?id=307502
使用 getBoundingClientRect 可能有效(对我有用)。
var rect;
rect = el.getBoundingClientRect();
return rect.top;