Javascript图像旋转器循环

Javascript图像旋转器循环,javascript,Javascript,我用一些数组和循环制作了一个“图像旋转器”。这是给有一些网站的朋友的。在那些网站上,他每隔几秒钟就会发布一些广告。我已经完成了,但我想利用更多的循环和数组,这样当他在不同的网站上使用它时,他就不会有太多的改变,而这些网站上有更多或更少的广告 下面是Javascript (function () { var NOI = 12; // number of images var delayInSeconds = 5; // set nu

我用一些数组和循环制作了一个“图像旋转器”。这是给有一些网站的朋友的。在那些网站上,他每隔几秒钟就会发布一些广告。我已经完成了,但我想利用更多的循环和数组,这样当他在不同的网站上使用它时,他就不会有太多的改变,而这些网站上有更多或更少的广告

下面是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);
})();
(函数(){
var NOI=12;//图像数
var delayUnseconds=5;//设置延迟秒数
var imageDir='images_ad/';//更改为匹配images文件夹
//列出图像名称
var ImageNames=新数组(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”;
//请勿在此行下方更改-----------------------------------------//
var changeImage=函数(){
var arr=[]
while(arr.length对于(var i=0;i而言,问题可能在这里:

while(arr.length < NOI)
另外,在那里抛出一些
console.log
语句来报告它在每个循环中所做的事情。你可以通过多种方式查看控制台输出(firefox上的firebug就是其中之一)。如果你不熟悉这个过程,你可以阅读浏览器中的javascript调试;这将对你有很大帮助


祝你好运!

为什么不直接使用sequence.js?你可能想看看这个解决方案来解决一个类似的问题:这将以一种简单的方式洗牌你的数组,并给出很好的随机结果。然后移除并重新渲染图像数组。
while(arr.length < NOI)
while(arr.length <= NOI)