2013-09-28 11 views
5

JavaScript ve/veya jQuery'yi kullanarak bir div'a metin eklemeye çalışıyorum ve daha sonra her 10 saniyede bir metne dönüşmesini sağlayın - böylelikle sadece düz metnin bir slayt gösterisi gibi. İşte benim kod:Javascript Text Slideshow

<div id="textslide"><p></p></div> 

<script> 

var quotes = new Array(); 

quotes[0] = "quote1"; 
quotes[1] = "quote2"; 
quotes[2] = "quote3"; 
quotes[3] = "quote4"; 
quotes[4] = "quote5"; 

var counter = 0; 

while (true) { 
    if (counter > 4) counter = 0; 
    document.getElementById('textslide').firstChild.innerHTML = quotes[counter]; 
    counter++; 
    setTimeout(// not sure what to put here, 500); // Want to delay loop iteration 
} 

</script> 
+0

setTimeout' 'ilk arg bir işlevdir üzerinde diyoruz. 'setTimeout' basitçe bu fonksiyonu tekrarlı olarak çağırır. Bu durumda, js kodunu bir işleve koymanız ve sonra bu işlevin adını ilk argüman olarak yazmanız yeterlidir. – stackptr

cevap

7

HTML:

<div id="textslide"><p></p></div> 

JavaScript/jQuery:

var quotes = [ 
    "quote1", 
    "quote2", 
    "quote3", 
    "quote4", 
    "quote5", 
    ]; 

var i = 0; 

setInterval(function() { 
$("#textslide").html(quotes[i]); 
    if (i == quotes.length) { 
     i = 0; 
    } 
    else { 
     i++; 
    } 
}, 10 * 1000); 

Working demo here İşte

1

düz JS

ile bir öneridir
function loop() { 
    if (counter > 4) counter = 0; 
    document.getElementById('textslide').firstElementChild.innerHTML = quotes[counter]; 
    counter++; 
    setTimeout(loop, 500); 
} 
loop(); 

Demo here

Eğer jQuery kullanmak istiyorsanız bunu kullanabilirsiniz: $('#textslide p:first').text(quotes[counter]);

Demo here yerine süre içinde

0

, kullanım:

setInterval(function() { 
    //do your work here 
}, 10000); 
.210
+2

_setIntervale_ değil, _setInterval_. –

0

bir işlevi kullanın ve vücut onload

<html> 
    <head> 
     <script> 
     var counter = 0; 

     function changeText() 
     { 
     var quotes = new Array(); 

     quotes[0] = "quote1"; 
     quotes[1] = "quote2"; 
     quotes[2] = "quote3"; 
     quotes[3] = "quote4"; 
     quotes[4] = "quote5"; 

     if (counter > 4) 
      { 
      counter = 0; 
      } 

     document.getElementById("textslide").innerHTML = quotes[counter]; 

     setTimeout(function(){changeText()},10000); 
     counter ++; 
     } 
     </script> 
    </head> 
    <body onload="changeText();"> 
     <p id="textslide"></p> 
    </body> 
</html>