2017-05-03 16 views
-1

私はここに新しいです、私のコードはありますが、うまく動作しますが、時々私は同じ画像をページに表示します。どのように私はそれがすべての画像ごとに異なることを示すことができます。同じページに同じランダムな画像があります(ランダムな画像を別に表示したい)

<html> 
<head> 
<SCRIPT language=JavaScript> 

var theImages = new Array() 
theImages[0] = 'cow.png' 
theImages[1] = 'donkey.png' 
theImages[2] = 'monkey.png' 

var otherImages = new Array() 
otherImages[0] = 'cow.png' 
otherImages[1] = 'donkey.png' 
otherImages[2] = 'monkey.png' 

var otherImages2 = new Array() 
otherImages2[0] = 'cow.png' 
otherImages2[1] = 'donkey.png' 
otherImages2[2] = 'monkey.png' 




var j = 0 
var p = theImages.length; 
var preBuffer = new Array() 
var preBuffer2 = new Array() 
var preBuffer3 = new Array() 
var preBuffer4 = new Array() 

for (i = 0; i < p; i++){ 

preBuffer[i] = new Image() 
preBuffer[i].src = theImages[i] 
preBuffer2[i] = new Image() 
preBuffer2[i].src = otherImages[i] 
preBuffer3[i] = new Image() 
preBuffer3[i].src = theImages[i] 
} 


var whichImage = Math.round(Math.random()*(p-1)); 
var otherImage = Math.round(Math.random()*(p-1)); 
var otherImage2 = Math.round(Math.random()*(p-1)); 
function showImage(){ 
document.write('<img src="'+theImages[whichImage]+'">'); 
} 

function showImage2(){ 
document.write('<img src="'+otherImages[otherImage]+'">'); 
} 

function showImage3(){ 
document.write('<img src="'+otherImages2[otherImage2]+'">'); 
} 


</SCRIPT> 
</head> 
<body> 

<SCRIPT language=JavaScript> 
showImage(); 
</SCRIPT> 

<SCRIPT language=JavaScript> 
showImage2(); 
</SCRIPT> 

<SCRIPT language=JavaScript> 
showImage3(); 
</SCRIPT> 



</body> 
</html> 
+0

'theImages'、' otherImages'および 'otherImages2'には常に同じイメージが含まれていますか?体に表示される3つの画像が常に異なるようにしていますか? 'preBuffer'配列の目的は何ですか? – Sasang

答えて

0

ランダムに選択された各画像が他のものと同じでないようにする必要があります。

ループが無作為化を繰り返すようにしながら、選択した画像のインデックスが他の人と一致しないまで、あなたは使用することができますあなたの配列は、あなたがループ内で動けなくなる可能性があるのでサイズを変更する可能性がある場合

var whichImage; 
var otherImage; 
var otherImage2; 

whichImage = Math.round(Math.random()*(p-1)); 

while (otherImage == whichImage) { 
    otherImage = Math.round(Math.random()*(p-1)); 
} 

while (otherImage2 == whichImage || otherImage2 == otherImage) { 
    otherImage2 = Math.round(Math.random()*(p-1)); 
} 

は注意してください。たとえば、1つの配列のサイズが1の場合のみです。

関連する問題