Spowolnione rozciąganie tabeli w JS


(Kjanok) #1

wpadłem na pomysł, że moja tabela znajdująca się gdzieś na stronie będzie się po trochu rozciągać w zależności od tego jak duży będziemy tam wstawiać tekst.

Doszedłem do czegoś takiego:

function r(x){

var y=Math.round(x);

if (x>y) x=y+1;

return x;

}

function t(j){

j=30*r(j/70);

var i=0;

while (i
i++;

setTimeout('document.getElementById("tab").style.height='+i,1000);

}

}

function info(){

var tab=new Array(<?php

include("conn.php");

$all=mysql_query("SELECT info FROM stateinfo");

$state=mysql_fetch_array($all);

print"'$state[0]'";

while($state=mysql_fetch_array($all)){

print",'$state[0]'";

}

?>

);

if (document.form2.state.value==0)document.getElementById("inf").innerHTML="";

else{

t(tab[document.form2.state.value-1].length);

document.getElementById("inf").innerHTML=tab[document.form2.state.value-1];

}

}

function test_DoFSCommand(command, args) {

document.form2.state.value=command;

info();

}

i wszystko powinno śmigać gdyby tylko nie fakt, że funkcja setTimeout jak się okazało odpala się w osobnym wątku i pętla nie czeka na jej wykonanie, tylko dalej iteruje zmienną "i" dlatego też cała tebela nagle wskakuje cała w odpowiednich rozmiarach nie dając tego efektu rozciągania.

Jeśli nie w ten sposób, to jak inaczej można uzyskać taki efekt?