2011-01-10 37 views
11

在使用jQuery UI范围滑块时,我主要是在Chrome中进行调试。我需要做的范围有限制,所以我会抓住像这样一个手柄上的左侧位置:jQuery定位Chrome(webkit)和Firefox之间的区别

$el.css('left');

这将使我的左侧位置,以百分比表示:84%。但是,当我在Firefox中测试时,它以像素为单位返回值。

有没有人遇到过这个?基于在Firebug中查看DOM,Firefox确实可以识别基于百分比的左侧定位,但似乎并没有将其作为一个值返回。这是Firefox的默认行为?这在IE中也一样吗?

+0

好问题。我最近惊讶地发现,当属性被指定为百分比(或ems)时,在Firefox中返回像素('左')。毕竟,您始终可以使用position()。left获取像素值。虽然没有在Chrome中检查过它。 – harpo 2011-01-10 04:08:27

+0

雅,当我认为我基本上完成了该功能的时候,其中一个元素刚刚从屏幕中弹出时,我感到很惊讶。在没有VMWare或类似的MBP上工作,所以现在不能真正测试IE。 – hellatan 2011-01-10 04:16:39

+0

这并不回答你的问题,但基于jQuery的解决方法是使用`position`(http://api.jquery.com/position/),它在每个浏览器上返回相同的值(以像素为单位)。 – Emmett 2011-01-10 04:28:33

回答

0

我不认为在最新版本1.4.4中使用jQuery定位有任何已知的差异。

1

的CSS()函数返回所报告的浏览器上的指定的CSS属性的值。因此,它是浏览器特有的,在处理长度和定位时不应该使用这种方式。

0

我工作围绕这一问题通过直接访问DOM,像这样:

$el.get(0).style.left

它返回FF,Chrome浏览器,Safari和IE9的百分比值。 (虽然没有在Opera上测试过)