代码之家  ›  专栏  ›  技术社区  ›  kolypto

DOM刷新后使用jQuery测量宽度()

  •  1
  • kolypto  · 技术社区  · 15 年前

    我的脚本动态创建 <ul> 左浮动宽度 <li> 里面是一个分页器。之后,脚本测量所有 <li> 然后总结。

    问题是,在节点被注入文档之后,浏览器刷新DOM并应用CSS样式,这需要一段时间。它对我的脚本有负面影响:当这些操作在我测量宽度之前没有完成时,我的脚本会得到一个错误的值。如果我马上做这个测量,一切都会好的。

    <ul> setTimeout(..., 100)

    如果有一个方法来检测宽度稳定,我会做测量后,它得到正确的值。

    <div>
        <ul>
            <li><a href="...">1</a></li>
            <li><a href="...">2</a></li>
            ....
            </ul>
        </div>
    

    我为什么需要这个。 我的分页器在左边浮动 <li> <ul> 试图变得比页面本身更宽。即使大多数人 <li> 由于父级的原因,s是不可见的 <div> 的宽度限制:

    div { width: 500px; overflow: hidden; }
    div ul { width: 100%; white-space: nowrap; }
    div ul li { display: block; float: left; }
    

    除非我指定实际的总宽度,否则它们仍然会下降 <

    1 回复  |  直到 15 年前
        1
  •  0
  •   kolypto    15 年前

    我发现当我把CSS嵌入到文档中时,一切都很好。这证明了问题是尽管我使用了 $(document).ready() 用于初始化。

    $(window).load() 在依赖外部资源并愿意正确测量宽度时。