我使用的是jQuery (v1.7.1),我需要获得一个元素的绝对浮点宽度,但是所有的jQuery的宽度方法似乎都是对宽度的值进行舍入。
例如,如果元素的实际宽度是20.333333px,则jQuery的width方法返回20,即忽略十进制值。
你可以在这个jsFiddle上看到我的意思
所以,我的问题是:如何获得元素宽度的浮点值?
发布于 2013-08-21 01:45:50
如果您已经有了对DOM元素的引用,element.getBoundingClientRect将为您提供所需的值。
该方法从Internet Explorer4开始就存在了,因此在任何地方都可以安全地使用。但是,width和height属性仅存在于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;
}在Chrome28中,getBoundingClientRect比window.getComputedStyle快70%,在火狐中差异更大:http://jsperf.com/getcomputedstyle-vs-getboundingclientrect
发布于 2012-08-11 03:15:44
试试这个:
var element = document.getElementById("a");
alert(window.getComputedStyle(element).width);更新的fiddle:http://jsfiddle.net/johnkoer/Z2MBj/18/
https://stackoverflow.com/questions/11907514
复制相似问题