2012-11-01 131 views
0

我有这个脚本我用来显示随机图像的超链接。任何人都可以告诉我如何适应它一次显示5个随机图像,最好不重复两次相同的图像?如何随机显示多个​​图像?

感谢

<script language="JavaScript"> 
<!-- 

/* 
Random Image Link Script- By JavaScript Kit(http://www.javascriptkit.com) 
Over 200+ free JavaScripts here! 
Updated: 00/04/25 
*/ 

function random_imglink(){ 
var myimages=new Array() 
//specify random images below. You can have as many as you wish 
myimages[1]="data/adverts/ad1.png" 
myimages[2]="data/adverts/ad2.png" 
myimages[3]="data/adverts/ad3.png" 
myimages[4]="data/adverts/ad4.png" 
myimages[5]="data/adverts/ad5.png" 


//specify corresponding links below 
var imagelinks=new Array() 
imagelinks[1]="http://www.javascriptkit.com" 
imagelinks[2]="http://www.netscape.com" 
imagelinks[3]="http://www.microsoft.com" 
imagelinks[4]="http://www.dynamicdrive.com" 
imagelinks[5]="http://www.freewarejava.com" 


var ry=Math.floor(Math.random()*myimages.length) 
if (ry==0) 
ry=1 
document.write('<a href='+'"'+imagelinks[ry]+'"'+'><img src="'+myimages[ry]+'" border=0></a>') 
} 
random_imglink() 
//--> 
</script> 
+0

如果全部显示,则没有随机性。 –

+0

你可以把图像放在一个数组中,然后在显示 –

+0

之前洗牌,我显然会添加更多的图像。 –

回答

0
function random_imglink(){ 
    var myimages=new Array(); 
    ... 
    var imagelinks=new Array(); 
    ... 
    var used = []; 
    var ry; 
    var howmany = 5; 
    for (var i = 1; i <= howmany; i++) { 
     ry=Math.ceil(Math.random()*myimages.length); 
     while(used.indexOf(ry)!=-1){ 
      ry=Math.ceil(Math.random()*myimages.length); 
     } 
     used.push[ry]; 
     document.write('<a href='+'"'+imagelinks[ry]+'"'+'><img src="'+myimages[ry]+'" border=0></a>') 
    } 
} 

这是假定你打算把更多的图像阵列中超过5

+0

是这无尽的?我的意思是毕竟5张图片显示会发生什么 – Svetoslav

+0

@Svetlio循环只能运行5次。图像显示后,功能结束。我不确定之后是否还有其他要求。 –

+0

是的,我看到了,但我认为这个想法并不是随机显示每个图像一次。 – Svetoslav

0

而是随机的,并且具有同时检查如果您已经选择的图像,你可以将选择的图像移动到数组的末尾,并将随机变量减1。例如:

function random_imglink(select){ 
    if (select > 5) { 
     // make it fail    ... 
    } 

    //specify random images below. You can have as many as you wish 
    var myimages = new Array(); 
    myimages[0]="data/adverts/ad1.png" 
    myimages[1]="data/adverts/ad2.png" 
    myimages[2]="data/adverts/ad3.png" 
    myimages[3]="data/adverts/ad4.png" 
    myimages[4]="data/adverts/ad5.png" 

    //specify corresponding links below 
    var imagelinks=new Array() 
    imagelinks[0]="http://www.javascriptkit.com" 
    imagelinks[1]="http://www.netscape.com" 
    imagelinks[2]="http://www.microsoft.com" 
    imagelinks[3]="http://www.dynamicdrive.com" 
    imagelinks[4]="http://www.freewarejava.com" 


    var size = myimages.length 

    for (var i=0;i<select;i++) { 
     var index = Math.floor(Math.random() * size);     


     document.write('<a href='+'"'+imagelinks[index]+'"'+'><img src="'+myimages[index]+'" border=0></a>'); 

     var tmp = myimages[index]; 
     myimages[index] = myimages[size - 1]; 
     myimages[size - 1] = tmp; 

     tmp = imagelinks[index]; 
     imagelinks[index] = imagelinks[size - 1]; 
     imagelinks[size - 1] = tmp; 

     --size; 
    } 
} 
random_imglink(3); 
0

这可能是类似的东西在一个代码行,并不会产生功能:

<img src="https://www.example.com/images/image-<?php echo rand(1,7); ?>.jpg"> 

为了得到这个工作,你会希望把你的图片:图片-1.jpg,image-2.jpg,image-3.jpg .... image-7.jpg,

当页面加载时,PHP rand()会回显一个随机数(在这种情况下, 1到7之间的数字),完成URL并因此显示相应的图像。来源:https://jonbellah.com/load-random-images-with-php/