2016-01-20 2 views
1

Извинитесь за то, что вы немного из моей глубины.Таймер обратного отсчета Javascript для изменения изображения и ссылки

Я пытаюсь использовать таймер обратного отсчета JavaScript JavaScript на странице ASP, чтобы сделать следующее - каждые шестьдесят секунд после загрузки страницы ссылка на изображение будет переключаться между одной из пяти комбинаций изображений и ссылок.

Я сделал здесь что-то не так, и я не могу найти проблему. Он никогда не запускается.

Заранее благодарим за любую помощь.

Изображения названы следующие:

  • 1_AdvoImg.gif 2_AdvoImg.gif 3_AdvoImg.gif 4_AdvoImg.gif 5_AdvoImg.gif

URL, являются следующие:

  • linkone.html linktwo.html linkthree.html linkfour.html linkfive.html

HTML-герметизирующего ссылку заключается в следующем:

<a id='AdvoLink' href='../'><img id='AdvoImg' src='' border="0"></a> 

Javascript это:

<script language="javascript"> 
    function startTimer(duration) { 
     var timer = duration, seconds, imgprefix, imgname, linkurl; 
     imgprefix = 1; 

     setInterval(function() { 
      seconds = parseInt(timer % 60, 10); 

      imgname = imgprefix.concat("_AdvoImg.gif"); 

      if (imgprefix == 1) { 
       linkurl = "linkone.html"; 
      } 

      if (imgprefix == 2) { 
       linkurl = "linktwo.html"; 
      } 

      if (imgprefix == 3) { 
       linkurl = "linkthree.html"; 
      } 

      if (imgprefix == 4) { 
       linkurl = "linkfour.html"; 
      } 

      if (imgprefix == 5) { 
       linkurl = "linkfive.html"; 
      } 

      if (--timer <= 0) { 
       document.getElementById("AdvoLink").href = ""; 
       document.getElementById("AdvoImg").src = imgname; 
       ++imgprefix; 
       timer = duration; 
      } 
     }, 5); 
    } 

    window.onload = function() { 
     startTimer(60); 
    }; 
</script> 
+0

блок для второго Параметр для 'setInterval' - миллисекунда. Итак, если вы хотите, чтобы он запускался каждые 60 секунд, вы должны установить 60000. –

+0

Если вы устанавливаете таймер var, который должен быть ';', поскольку вы являетесь текущим таймером установки на «продолжительность, секунды, imgprefix, imgname, linkurl' , – Billy

ответ

0

Вы пытаетесь построить таймер внутри таймера там. Постарайтесь максимально упростить его. То, что вы на самом деле нужно просто:

window.onload = function() { 
    setInterval(function() { 
    //your url changing magic here - without the timer stuff 
    }, 60000); 
}; 

С этим, ваш код магии должен вызывать каждые 60000 миллисекунд => 60 => 1мин. Вы действительно могли бы «отладить» его, используя console.log() внутри вашего цикла.

0

не знаю, что вы использовали Var секунд, так что я удалил его

отредактирован, чтобы остановить номер изображения происходит через 5, изменится, если петля на то, что номер вам нужно

function startTimer(duration) { 
 
    
 
     var timer = duration;var seconds;var imgprefix;var imgname;var linkurl; 
 
     imgprefix = 1; 
 
    
 
    
 
    
 

 
     setInterval(function() { 
 
     
 
     
 
     
 
      imgname = imgprefix+"_AdvoImg.gif"; 
 

 
      if (imgprefix == 1) { 
 
       linkurl = "linkone.html"; 
 
      } 
 

 
      if (imgprefix == 2) { 
 
       linkurl = "linktwo.html"; 
 
      } 
 

 
      if (imgprefix == 3) { 
 
       linkurl = "linkthree.html"; 
 
      } 
 

 
      if (imgprefix == 4) { 
 
       linkurl = "linkfour.html"; 
 
      } 
 

 
      if (imgprefix == 5) { 
 
       linkurl = "linkfive.html"; 
 
      } 
 
document.getElementById("timer").innerHTML=timer; 
 
       timer--; 
 
      if (timer <= 0) { 
 
       
 
       document.getElementById("AdvoLink").href = linkurl; 
 
       document.getElementById("AdvoImg").src = imgname; 
 
       document.getElementById("result").innerHTML = "image src = "+imgname+" and href = "+linkurl; 
 
       if(imgprefix < 5){++imgprefix;}else{imgprefix =1;} 
 
       timer = duration; 
 
      } 
 
     }, 200//speed up and slow down here, in milliseconds 
 
        ); 
 
    } 
 

 
    window.onload = function() { 
 
     startTimer(10); 
 
    };
<a id='AdvoLink' href='../'><img id='AdvoImg' src='' border="0"></a> 
 
<div id="timer"> </div> 
 
<div id='result'> </div>