使用 JavaScript 随机重排 DIV 元素并遵循特定规则

使用 javascript 随机重排 div 元素并遵循特定规则

本文将介绍如何使用 JavaScript 和 jQuery 实现 DIV 元素的随机重排,并确保重排后的顺序符合预定义的规则,即首个元素必须为 Card 类型,后续元素在 Image 和 Card 类型之间交替出现,同时保证同类型元素内部的随机性。通过分离元素、随机排序和重新插入 DOM,实现灵活且可控的元素重排。

实现原理

实现此功能的关键在于:

元素分离: 将不同类型的 DIV 元素(Card 和 Image)从 DOM 中分离出来,分别存储到不同的数组中。随机排序: 使用 Fisher-Yates 洗牌算法对每个数组进行随机排序,确保同类型元素内部的随机性。规则重组: 按照预定义的规则(首个 Card 类型,后续 Image 和 Card 交替)将元素重新插入到 DOM 中。

具体实现

以下是具体的代码实现,包括 HTML 结构、CSS 样式和 JavaScript 代码:

HTML 结构:

立即学习“Java免费学习笔记(深入)”;

Card #1
Card #2
Card #3
Card #4
Card #5
Image #1
Image #2
Image #3
Image #4

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++;    }  }});

代码解释:

shuffle(array) 函数实现了 Fisher-Yates 洗牌算法,用于随机排序数组。$(function() { … }); 确保在 DOM 加载完成后执行代码。$(“#content > [id^=card]”).remove().get(); 使用 jQuery 选择器选择所有 ID 以 “card” 开头的 DIV 元素,将其从 DOM 中移除,并转换为 JavaScript 数组。 $(“#content > [id^=image]”).remove().get(); 同理,获取所有 Image 类型的 DIV 元素。shuffle(cards); 和 shuffle(images); 分别对 Card 和 Image 数组进行随机排序。$(“#content”).append(cards[0]); 确保第一个元素是 Card 类型,并将其添加到 #content 中。cards = cards.slice(1); 从 cards 数组中移除第一个元素。while 循环交替添加 Image 和 Card 类型的元素到 #content 中,直到所有元素都被添加完毕。

注意事项

确保引入 jQuery 库。可以根据实际需求修改 HTML 结构、CSS 样式和 JavaScript 代码。如果需要处理更复杂的规则,可以修改 JavaScript 代码中的重组逻辑。

总结

通过以上步骤,我们可以使用 JavaScript 和 jQuery 实现 DIV 元素的随机重排,并确保重排后的顺序符合预定义的规则。这种方法具有灵活性和可扩展性,可以应用于各种需要动态调整页面元素顺序的场景。 核心在于将DOM元素分离,随机排序,再按照规则组合。

以上就是使用 JavaScript 随机重排 DIV 元素并遵循特定规则的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1514249.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
React Native Stack Navigator:统一设置所有屏幕的样式
上一篇 2025年12月20日 08:19:29
JavaScript中将日期字符串转换为HTML日期输入格式的实践指南
下一篇 2025年12月20日 08:19:45

相关推荐

发表回复

登录后才能评论
关注微信