首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取元素的实际浮点宽度

获取元素的实际浮点宽度
EN

Stack Overflow用户
提问于 2012-08-11 02:46:46
回答 2查看 33K关注 0票数 55

我使用的是jQuery (v1.7.1),我需要获得一个元素的绝对浮点宽度,但是所有的jQuery的宽度方法似乎都是对宽度的值进行舍入。

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

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-21 01:45:50

如果您已经有了对DOM元素的引用,element.getBoundingClientRect将为您提供所需的值。

该方法从Internet Explorer4开始就存在了,因此在任何地方都可以安全地使用。但是,widthheight属性仅存在于IE9+中。如果您支持IE8及以下版本,则必须计算它们:

代码语言:javascript
复制
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中,getBoundingClientRectwindow.getComputedStyle快70%,在火狐中差异更大:http://jsperf.com/getcomputedstyle-vs-getboundingclientrect

票数 85
EN

Stack Overflow用户

发布于 2012-08-11 03:15:44

试试这个:

代码语言:javascript
复制
var element = document.getElementById("a");
alert(window.getComputedStyle(element).width);

更新的fiddle:http://jsfiddle.net/johnkoer/Z2MBj/18/

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11907514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档