我已經做了一個「圖像旋轉」使用幾個數組和循環。這是一個朋友,有一些網站。在那些網站上有他想每隔幾秒鐘就會出現的廣告。我已經完成了它,但是想要利用更多的循環和陣列,所以當他在不同的網站上使用它時,他的更改會更少或更少。Javascript圖像旋轉環
這裏是JavaScript
(function() {
var NOI = 12; // number of images
var delayInSeconds = 5; // set number of seconds delay
var imageDir = 'images_ad/'; // change to match images folder
// list image names
var ImageNames = new Array(NOI);
ImageNames[0] = 'ad1.jpg';
ImageNames[1] = 'ad2.jpg';
ImageNames[2] = 'ad3.jpg';
ImageNames[3] = 'ad4.jpg';
ImageNames[4] = 'ad5.jpg';
ImageNames[5] = 'ad6.jpg';
ImageNames[6] = 'ad7.jpg';
ImageNames[7] = 'ad8.jpg';
ImageNames[8] = 'ad9.jpg';
ImageNames[9] = 'ad10.jpg';
ImageNames[10] = 'ad11.jpg';
ImageNames[11] = 'ad12.jpg';
// do not change below this line ---------------------------------//
var changeImage = function() {
var arr = []
while(arr.length < NOI){
var randomnumber=Math.floor(Math.random()*(NOI))
var found=false;
for(var i=0;i<arr.length;i++){
if(arr[i]==randomnumber){found=true;break}
}
if(!found)arr[arr.length]=randomnumber;
}
var num = [];
var rotator = []
for (var i=0; i<NOI; i++){
rotator[i] = document.getElementById('rotator' + i);
num[i] = arr[i]
for (var x = 1; x < num.length; x++) {
rotator[x].src = imageDir + ImageNames[num[x]];
}
}
};
setInterval(changeImage, delayInSeconds * 1000);
})();
這樣,他將只需要設定時間,文件夾名稱,並增加他們的名字/減少廣告清單。之前有3個其他名單會增加/減少。我知道這可能不是最大的一個肩膀,但我並不完全是一個瘋子。它似乎正常工作減去最後的圖像不變。
問題如上所述,最後一張圖片沒有改變。我有一種感覺,問題出現在最後一個循環中,但我嘗試了所有我能想到的並且無法實現的工作。
HTML端將沿的線條看起來:
<img src="ad1.jpg" alt="rotating image" width="150" height="82" id="rotator1" />
<br/>
<img src="ad2.jpg" alt="rotating image" width="150" height="82" id="rotator2" />
<br/>
<img src="ad3.jpg" alt="rotating image" width="150" height="82" id="rotator3" />
<br/>
...
如果你需要什麼我可以嘗試,並提供它,但我認爲是幾乎所有有。感謝任何能提供幫助,建議和指針的人。
爲什麼不只是使用sequence.js – Petah
你可能想看看這個解決方案的類似問題:http://stackoverflow.com/a/12646864/495935這將以一種簡單的方式洗牌你的數組,並給予很好的隨機結果。然後刪除並重新渲染圖像數組。 –