jquery – 获取元素的实际浮点宽度

前端之家收集整理的这篇文章主要介绍了jquery – 获取元素的实际浮点宽度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用jQuery(v1.7.1),我需要获得一个元素的绝对浮点宽度,但所有的jQuery的宽度方法似乎是四舍五入的宽度的值。

例如,如果一个元素的实际宽度是20.333333px,jQuery的width方法返回20,即忽略十进制值。

你可以看到我的意思在这个jsFiddle

所以,我的问题是:如何获得元素的宽度的浮点值?

解决方法

如果你已经有一个对DOM元素的引用, element.getBoundingClientRect将得到你想要的值。

方法自Internet Explorer 4以来已存在,因此它可以安全地使用无处不在。但是,宽度和高度属性仅存在于IE9中。如果您支持IE8及以下版本,您必须计算它们:

var rect = $("#a")[0].getBoundingClientRect();

var width;
if (rect.width) {
  // `width` is available for IE9+
  width = rect.width;
} else {
  // Calculate width for IE8 and below
  width = rect.right - rect.left;
}

getBoundingClientRect比Chrome 28中的window.getComputedStyle快70%,Firefox中的区别更大:http://jsperf.com/getcomputedstyle-vs-getboundingclientrect

猜你在找的jQuery相关文章