
本文将介绍如何使用 JavaScript 和 jQuery 实现 DIV 元素的随机重排,并确保重排后的顺序符合预定义的规则,即首个元素必须为 Card 类型,后续元素在 Image 和 Card 类型之间交替出现,同时保证同类型元素内部的随机性。通过分离元素、随机排序和重新插入 DOM,实现灵活且可控的元素重排。
实现此功能的关键在于:
以下是具体的代码实现,包括 HTML 结构、CSS 样式和 JavaScript 代码:
HTML 结构:
立即学习“Java免费学习笔记(深入)”;
<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>
CSS 样式:
body {
font: medium monospace;
}JavaScript 代码:
function shuffle(array) {
// Fisher-Yates shuffle
for (let i = array.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
let temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
$(function() {
let cards = $("#content > [id^=card]").remove().get();
let images = $("#content > [id^=image]").remove().get();
shuffle(cards);
shuffle(images);
// 确保第一个元素是 Card 类型
$("#content").append(cards[0]);
cards = cards.slice(1); // 移除第一个元素
// 交替添加 Image 和 Card 类型
let cardIndex = 0;
let imageIndex = 0;
while (cardIndex < cards.length || imageIndex < images.length) {
if (imageIndex < images.length) {
$("#content").append(images[imageIndex]);
imageIndex++;
}
if (cardIndex < cards.length) {
$("#content").append(cards[cardIndex]);
cardIndex++;
}
}
});代码解释:
通过以上步骤,我们可以使用 JavaScript 和 jQuery 实现 DIV 元素的随机重排,并确保重排后的顺序符合预定义的规则。这种方法具有灵活性和可扩展性,可以应用于各种需要动态调整页面元素顺序的场景。 核心在于将DOM元素分离,随机排序,再按照规则组合。
以上就是使用 JavaScript 随机重排 DIV 元素并遵循特定规则的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号