2014-02-23 94 views
1

我有图像库,我想创建一个JavaScript文件,这样每次我点击一个按钮,它会生成一个目录,显示随机图像从该目录4个图像的Javascript从目录中随机图像

+1

可能的重复http://stackoverflow.com/questions/5809188/script-to-display-an-image-selected-at-random-from-an-array-on-page-load – ambodi

回答

1

你没有指定如何获取图像,所以我猜图像存储在一个字符串数组中。 无论如何,你需要的第一件事情当然是某种洗牌算法。

退房此链接:http://dzone.com/snippets/array-shuffle-javascript

适应代码到你的需求:

var arr = [ 
    "http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png", 
    "http://img.bananity.com/media/512/512/bananities/8060a5cf4f9eae8ecff79720db58c2dfacf707344fcb.png", 
    "http://www.socialtalent.co/images/blog-content/so-logo.png", 
    "http://www.logoeps.net/wp-content/uploads/2013/06/stackoverflow_logo.jpg", 
    "http://i22.photobucket.com/albums/b302/Creyeknife/SO_concept1.jpg" 
]; 

getRndImgs = function(o,numberOfImgs){ 
    for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); 
    return o.slice(0,numberOfImgs-1); 
}; 

所以,你可以稍后致电:

var imagesToShow=getRndImgs(arr,4); 

,并显示它们的地方

for (var i=0;i<imagesToShow.length;i++) { 

document.getElementById("div_"+i).innerHTML="<img src='"+imagesToShow[i]+"' />" 

} 
+0

为什么你使用变量o ,j,x而不仅仅是我? – IslandKing

+0

o是图像阵列。 i和j用于访问不同索引中的数组元素。 x是用于交换数组的项目的变量。 – rpax