我试图在页面加载时显示一些 DIV,并且每次显示它们的顺序都是随机的,但并不完全是随机的,因为我希望它们遵守一些规则。
有两种不同类型的 DIV:
- 卡片 x5 (C)
- 图像 x4 (I)
规则应该如下:
- 第一个 DIV 必须始终是 C 类型
- 其余的 DIV 应该在 I 和 C 之间交替出现 (例如:C, I, C, I, C, I, C, I, C)
- 所有的 DIV 应该从它们各自的类型中随机选择
我尝试了使用 jQuery 进行数组洗牌,采用另一个问题的解决方案(如下所示),但那只会将 DIVs 随机排序,并没有考虑规则 1 和 2。
var $cont = $('#content');
var itemsArr = $cont.children().get();
$cont.append(shuffle(itemsArr));
function shuffle(a) {
var j, x, i;
for (i = a.length; i; i--) {
j = Math.floor(Math.random() * i);
x = a[i - 1];
a[i - 1] = a[j];
a[j] = x;
}
return a;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row" id="content">
<div class="col-sm-12 col-md-6 col-lg-4" id="card1">Card #1</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="card2">Card #2</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="card3">Card #3</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="card4">Card #4</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="card5">Card #5</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="image1">Image #1</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="image2">Image #2</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="image3">Image #3</div>
<div class="col-sm-12 col-md-6 col-lg-4" id="image4">Image #4</div>
</div>
如果有任何建议或帮助可以指引我朝着正确的方向前进,我将永远感激不尽。