这是合约。我正在使用一个名为backstretch的插件,全屏显示我的背景图像并制作幻灯片。
这就是我for now(website of the plugin)。
现在,我希望图像每次都是随机的。假设我有3张图片,就像是:
2, 3, 1
3, 1, 2
1, 2, 3
1, 3, 2
在一行中,这将是:2, 3, 1, 3, 1, 2, 1, 2, 3, 1, 3, 2
注意:图片必须避免重复自己,如:2, 3, 1, 1, 2, 3
任何?
答案 0 :(得分:3)
使用math.Random();
从数组中提供一个随机索引,将其置于while循环中,直到获得不同的数字为止。即
oldIndex = index;
while (oldIndex == index) {
index = Math.floor((Math.random()*images.length));
}
编辑: 从随机图像开始,在调用backstretch之前使用随机方法
index = Math.floor((Math.random()*images.length));
$.backstretch(images[index], {
speed: 500
});
您的fiddle
编辑2:
在讨论OP要求(在评论中)后,他们需要一个不完全随机的滑块。需要确保在再次选择任何索引之前使用所有索引,然后在清空时重置。
通过将索引列表填充到一个单独的数组中,我们可以在使用它们时将其从数组中删除,直到为空,然后重新填充,我们还保留前一个索引,以便即使重置图像也不会重复。最终结果here