2010-11-12 20 views
0

我有3張圖片。 1.jpg,2.jpg,3.jpg。我想隨機將它們分配到三個img元素中(在窗口刷新時,三個圖像的位置將會改變)。
如何在這裏使用Math.random()?謝謝。如何使用Math.random()將三張圖片分配到三個img元素中?

<img src='' id='img1' /> 
<img src='' id='img2' /> 
<img src='' id='img3' /> 
+0

謝謝,請原諒我,現在我已經這樣做了。 – 2010-11-12 20:05:41

回答

2

有六種不同的方式可以將圖像放入標籤中。隨機選擇其中之一:

var index = Math.floor(Math.random()*6); 
var ids = [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]][index]; 
document.getElementById('img'+ids[0]).src = '1.jpg'; 
document.getElementById('img'+ids[1]).src = '2.jpg'; 
document.getElementById('img'+ids[2]).src = '3.jpg'; 
1
Math.floor(Math.random()*3)+1; 

但是分佈將是不均勻的。

+0

是的,我讀過一些文章,Math.random()只運行一個項目,而不是三個... – 2010-11-12 20:07:58

+0

您可以多次運行代碼,只需編寫一個函數來替換img的src屬性中的數字。 – 2010-11-12 20:10:38

3

您可以隨機播放您創建一個數組:

var arr = ["1.jpg", "2.jpg", "3.jpg"]; 
arr.sort(function() {return 0.5 - Math.random()}); 

Some people prefer other ways of shuffling,但互換方法將努力確保您在所得數組中得到的所有元素的只有一次。

+0

哦,謝謝,我正在閱讀洗牌文章。洗牌更難以知道。 – 2010-11-12 20:24:44

相關問題