Hej! Kika på de inbyggda timingfunktionerna istället för att göra en while-loop som ligger och idlar. tack, skall försöka det.javascript flush()
Jag har en javascript-loop där jag skall synliggöra olika lager i tur och ordning (bildspel).
En funktion som pausar, och en funktion som sätter z-index värdena för mina olika sidor i bildspelet
Problemet är att skriptet, som det är nu, inte uppdaterar webbläsaren förrän hela mitt skript är klart, så det är bara första och sista sidan som visas.
Jag försökte med att lägga till flush(); efter sista raden i loopen (längst ner i koden) men då uppdaterar den till sida 2, sedan stannar den, när jag kör javascripts flush() så skriver den inte ut några av de andra grejerna från skriptet utan stannar där.
Hur kan jag lösa det?
JavaScript
function pause(millis)
{
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
}
PHP
$totalSlides=sizeof($slideData);
for ($i=0; $i<$totalSlides; $i++) {
$javascript.="
pauseTimes[$i]=" . $slideData[$i]['seconds_to_next']*1000 . ";";
}
Javascript
for (i=0; i<$totalSlides; i++) {
pause(pauseTimes[i]);
document.getElementById('slide'+i).style.zIndex='0';
document.getElementById('button'+(i+1)).setAttribute('class', 'past');
}Sv: javascript flush()
Ex. setTimeout() verkar göra precis det du vill;
www.w3schools.com/js/js_timing.aspSv:javascript flush()
Jag testade setTimeout, men inte ihop med while-loop.
/MS