(这似乎是一个简单的问题,以前可能已经有人问过了,但如果有的话我找不到,尽管有很多类似的问题没有回答我想要的。)
在Firefox(24.0)中,这段代码给我我想要的内容-相关像素数:
jQuery('selector').css('right')
在Chrome(34.0.1847.137 m)中,只有left/top返回像素值,但是right/bottom返回
auto
。在Stack Overflow上,有许多关于这是.css的预期行为的问题,但我找不到任何解释如何获得我想要的行为的内容-即给我计算后的所有四个值。
JS或jQuery是否有直接获取这四个值的方法,在所有浏览器/场景中都能正常工作? (还是必须采用丑陋的手动计算?)
澄清一下:我需要的值与Firefox返回的
.css('right')
值相同-这是当前和父元素右侧边缘之间的距离。 这与某些函数返回的基于视口的左侧+宽度定义不同。即这里记录的值应数字上相同:
elem = jQuery('selector')
rect = someFunction( elem[0] );
console.log([ elem.css('left') , rect.left ]);
console.log([ elem.css('right') , rect.right ]);
console.log([ elem.css('top') , rect.top ]);
console.log([ elem.css('bottom') , rect.bottom ]);
除非我误读了其他答案,否则只有kalley的getRelativeClientRect答案符合此标准。
.css('right')
是相对于父元素最右边缘的像素数,这与left+width不同。 - Peter Boughton