javascript - 实现洗牌图片功能

标签 javascript random

我正在寻找有关如何启动随机播放图像功能的建议,所以我在一个 div 框中有 6 张图像 atm,我想要一个允许它们随机播放的功能,我应该如何开始?我是否也应该将图像放在单独的 div 中?感谢任何帮助或示例代码,谢谢

最佳答案

以下是一个 jQuery 解决方案。您可以使用 vanilla JavaScript 获得相同的结果,但它需要几行额外的代码。

<div id="deck">
  <div><img src="" /></div>
  <div><img src="" /></div>
  .
  .
  .
</div>
// Fisher–Yates Shuffle (Knuth variant)
// To shuffle an array a of n elements (indices 0..n-1):
//   for i from n - 1 downto 1 do
//        j <- random integer with 0 <= j <= i
//        exchange a[j] and a[i]

// jQuery specific:
// 1) remove elements from DOM and convert them into a native JavaScript array
// 2) apply algorithm
// 3) inject the array back to DOM

var a = $("#deck > div").remove().toArray();
for (var i = a.length - 1; i >= 1; i--) {
    var j = Math.floor(Math.random() * (i + 1));
    var bi = a[i];
    var bj = a[j];
    a[i] = bj;
    a[j] = bi;
}
$("#deck").append(a);

Demo here

关于javascript - 实现洗牌图片功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9643484/

相关文章:

javascript - 谷歌地图 API v2 : MarkerManager clearMarkers(); doesn't work

javascript - AngularJS 中不同范围的值匹配

javascript - 让Webpack 2.2.1输出单个JS文件

java - 在java中创建随机对象

mysql - 选择随机行,但不重复另一列中的值

c# - C#获取受控随机数的方法

javascript - Cubism 自己的数据源问题

python - 基于单个随机整数的 Python 中的随机连续列表切片

java - Bukkit/Java 可定制的百分比机会

javascript - 我们如何在js中识别Dynamics CRM Web api版本?