【发布时间】:2013-10-03 22:17:15
【问题描述】:
解释我的问题有点困难,所以如果我没有说清楚,请问。
使用这个脚本,我随机加载了 6 个 div。
<script>
$(document).ready(function(){
var divs = $("div.item").get().sort(function(){
return Math.round(Math.random())-0.5;
}).slice(0,6)
$(divs).show();
});
</script>
我正在使用 twitter-bootstrap,因为我想要每行 3 个 div(两行),所以我为它们分配了 .span4 类。这将自动生成两行,每行有 3 个.span4。它们需要对齐左右边距,并在每个边距之间留出一个间距。
SEE HERE
现在的问题是,通过随机加载它们,我无法让它们正确对齐。
使用 twitter-bootstrap,第一个跨度永远不会得到 margin-left,而其他所有跨度都会。
因此,如果我随机加载,例如:
第六个跨度进入第一个位置,第一个跨度进入第二个位置,然后我有对齐(边距)问题。
SEE HERE
我认为首先我需要使用 .span4 { margin-left: 0 !important;} 使所有跨度相等左右两边
SEE HERE
我已经在这种情况下苦苦挣扎了几天,想不出任何优雅的解决方案。
是否有 Javascript 解决方案可以根据加载顺序为特定跨度添加样式?
作为第一个和第五个加载的只有一个右边距
加载第二个和第五个以具有左右边距的那些
加载为第三和第六的只有左边距
【问题讨论】:
-
尝试在内存中创建它们,然后附加到 DOM。
-
谢谢库尔特,你能说得更具体点吗?
-
您需要做的只是从第一个和第四个 div 中删除边距,然后对所有其余部分应用边距。在您使用计数器对随机生成进行排序后遍历它们,并将边距 0 应用于第一个和第四个,以及您想要的其余部分。中间不需要左右边距,但第 2、3、5 和 6 号需要左边距。
-
谢谢你,Alex,你能给我举个柜台的例子吗?
-
您可以在包含已加载 div 元素的 divs 变量上使用 each() 和计数器,就像您可以在这里找到的 api.jquery.com/each 一样。当 index 为 1 和 4 时,您在函数中的 $(this) 上不应用边距,其余部分应用左边距,您需要将它们适当地隔开。
标签: javascript jquery html css twitter-bootstrap