javascript - 在渲染之前,如何使用 jQuery 找到元素的预期渲染宽度?

标签 javascript jquery dom

我有一个元素,例如下面,它尚未附加到 body 中。我可以很好地使用它,它具有导致它使用特定盒子模型进行渲染的所有类。

但我需要在实际附加之前知道它的宽度。

如果我使用 Firebug 检查元素,它会使用元素本身和 CSS 正确计算框模型和布局。但我怎样才能在 jQuery 中做到这一点呢?

<li>
  <i class="icon"></i>
  <a>/a>
</li>

CSS,例如for i.icon 设置 width: 40;,但我如何获得它?

elm.width() 上的所有变体都给出 0,包括 elm.css('width')

最佳答案

如果不将其添加到文档中,则无法获取其计算属性。但是,您可以添加它,获取计算属性,然后删除它,几乎可以肯定用户不会注意到。例如:

var $elm = /*...the jQuery wrapper around your element...*/;

// Append it
$elm.appendTo(document.body); // Put it where it should go, not usually `document.body` literally

// Get the properties here, e.g.:
var width = $elm.width();

// Remove it again
$elm.remove();

Live Example | Source

关于javascript - 在渲染之前,如何使用 jQuery 找到元素的预期渲染宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624313/

相关文章:

jquery - 设置选择索引

javascript - Knockout.js:推送项目 -> 指定新的 DOM 元素

javascript - iframe onreadystatechange

javascript - Angular 错误 : $http. 帖子不是函数

javascript - 按超过个位数的数字排序

javascript - Wow.js - 具有固定高度的滚动 div 中的动画。有些物体消失了

javascript - 如何在 Chrome 之外操作 object.style.animationDuration?

java - 用于过滤/排序大量数据的插件或模块?

javascript - 在 Javascript 中,我需要一个正则表达式来删除具有多个外观的 2 个文本(范围)之间的字符串中的文本

dom - 如何在 DOM 加载后引用动态添加的元素而不需要对任何事件进行操作?