javascript - 获取单个子元素的总宽度(然后减半)

标签 javascript jquery css layout width

我有一个包含多个 child 的 div。我打算使用水平布局,所以我需要在父 div 上设置一个宽度,以使布局从左到右运行。我想要 2 行,而不是单行中的所有元素,所以一旦我得到总宽度,我需要将它除以 2,以便元素换行到另一行。

child 的数量会发生变化,因此 CSS 值在这种情况下不合适。

标记看起来有点像这样:

<div id="container">
  <figure>1</figure>
  <figure>2</figure>
  <figure>4</figure>
  <figure>5</figure>
  <figure>6</figure>
</div>

如果有人能帮助我,我将不胜感激。我以前设法获得了单个元素的尺寸,但我看不到为一个组做这件事。

提前致谢, 史蒂夫

最佳答案

请引用这个 fiddle :https://jsfiddle.net/m6k1jamd/

要实现这一目标必须做的是:
- 在页面加载时获取图形的预定义宽度(在 css 中设置)
- 获取容器内的 girues 数量
- 算出每行要显示多少个数字(你想要 2 行)。
- 使用 Math.ceil()
强制 2 行 - 通过计算每行的图形数量 * 图形宽度来确定每行的宽度。
- 将容器宽度设置为计算出的行宽。

来自上述逻辑的 Javascript

$(document).ready(function(){

    //Get the figures width
    var figure_width = $("#container figure").css("width").replace("px", "");

    //Get num figures
    var num_figures = $("#container figure").length;

    //Work out how manay figures per row
    var num_row_figures = Math.ceil(num_figures / 2);

    //Get the total width
    var row_width = figure_width * num_row_figures;

    //Set container width to half the total
    $("#container").width(row_width);

});

希望对您有所帮助!
乔希

关于javascript - 获取单个子元素的总宽度(然后减半),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31784370/

相关文章:

javascript - 某些东西导致这个 CSS 崩溃

javascript - 如何更改 "html"元素的 CSS

javascript - 使用 jQuery 或 Javascript 从 Cookie 中删除特定数据

javascript - 错误代码: 402 when trying to capture Web Page with Casperjs

javascript - 函数体的解结构变量和变量部分之间的区别

jquery - OS X Chrome 10.0.648.151 上的 HTML 历史状态问题

javascript - 单击时的 jQuery 导航 slider

javascript - 在右键单击时隐藏带有 angularjs 的 html 部分

css - 使用 React 和 CSS Modules/PostCSS 制作可自定义的 css 属性

javascript - 为什么此按钮不会更改文本框?