我使用一些数组和循环制作了一个“图像旋转器”。这是给有一些网站的朋友的。在那些网站上,每隔几秒钟就会出现一些他想要使用的广告。我已经完成了它,但想利用更多的循环和数组,这样当他在广告或多或少的不同网站上使用它时,他的改变就更少了。
这是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 个其他列表会增加/减少之前。我知道这可能不是最适合旋转器的设置,但我并不完全是 javascripter。减去最后一张图像没有改变,它似乎工作得很好。
问题如上所说,最后一张图没有变化。我有一种感觉,问题出在最后一个循环中,但我已经尝试了所有我能想到的方法,但无法让它发挥作用。
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/>
...
如果您需要其他任何东西,我可以尝试提供它,但我认为这几乎就是全部。感谢任何可以提供帮助、建议和指点的人。