我能够循环执行功能to display 5 random images。现在,我想使用相同的5张图像并将它们随机播放,其中每张图像仅显示一次(给出5张!= 120个排列)。
我已经找到了很多有关如何随机播放和显示随机数(而不是图像)的技巧,但是我认为我的问题是设置然后调用函数。我该怎么办?
假设:
<style>
标签之间定义随机播放功能用简单的英语我想实现:
“将集合中的五张图像放入,并按任意顺序排列一次。”
会发生什么:
出现五张图像,经常重复图像。
成功的网页具有此:
</style>
<script type="text/javascript">
// place your images in this array
var random_images_array = ['Weare.jpg', 'Always.jpg', 'There.jpg', 'For.jpg', 'You.jpg'];
function getRandomImage(imgAr, path) {
path = path || '../Public/images/'; // default path here
var num = Math.floor( Math.random() * imgAr.length );
var img = imgAr[ num ];
var imgStr = '<img src="' + path + img + '" alt = "">';
document.write(imgStr); document.close();
}
</script>
</head>
<body>
然后是这个(我假设是函数的调用)
<div>
<!-- This script segment displays an image from the array -->
<script type="text/javascript">for (i = 0; i < 5; i++) getRandomImage(random_images_array, 'images/')</script>
</div>
我该如何解决?
我认为您不必每次都随机获取数组项,而是可以随机整理数组。这样可以确保您每次都有不同的图像,例如:
var random_images_array = ['Weare.jpg', 'Always.jpg', 'There.jpg', 'For.jpg', 'You.jpg'];
function shuffleArray(arr) {
for (var i = arr.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// Shuffle images here
random_images_array = shuffleArray(random_images_array);
function getRandomImage(img, path) {
path = path || '../Public/images/'; // default path here
var imgStr = '<img src="' + path + img + '" alt = "">';
document.write(imgStr);
document.close();
}
for (i = 0; i < 5; i++)
getRandomImage(random_images_array[i], 'images/')