webForumDet fria alternativet

timeoutproblem

JavaScript

1 svar · 179 visningar · startad av AndyH84

Medlem sedan okt. 20022 inlägg
Frågan#1

hej! tack för hjälpen med mitt förra problem.
Nu är det dock så att jag stött på ännu ett problem. Jag har en funktion som flyttar ner ett lager när jag anropar den. jag har en annan funktion som flyttar lagret uppåt. jag skulle nu vilja ha det på det sättet att de bara kan vara ett lager som är påväg ner men många kan vara på väg upp

<script type="text/javascript">
var ner;
var upp;
// ynere = 106;

function flyttaner(id)
{
	if(parseInt(document.all(id).style.top) <=  106)
	{
		document.all(id).style.top = parseInt(document.all(id).style.top) + parseInt((108-parseInt(document.all(id).style.top))*0.2)+1;
		ner = setTimeout('flyttaner(\''+ id +'\')',20);
	}
}

function flyttaupp(id)
{
	clearTimeout(ner);
	if(parseInt(document.all(id).style.top) >= 30)
	{
		document.all(id).style.top = parseInt(document.all(id).style.top) - parseInt((parseInt(document.all(id).style.top)-30)*0.2)-1;
		upp = setTimeout('flyttaupp(\''+ id +'\')',20);
	}
}

</script>
Medlem sedan juni 20004 308 inlägg
#2

Prova detta:

<script type="text/javascript">
var ner;
var upp;
// ynere = 106;
var movingdown=false;

function flyttaner(id)
{
	if(parseInt(document.all(id).style.top) <=  106 &&(!movingdown||movingdown==id))
	{
		document.all(id).style.top = parseInt(document.all(id).style.top) + parseInt((108-parseInt(document.all(id).style.top))*0.2)+1;
		movingdown=id;
		ner = setTimeout('flyttaner(''+ id +'')',20);
	}
	else
	{
		movingdown=false;
	}
}

function flyttaupp(id)
{
	clearTimeout(ner);
	if(parseInt(document.all(id).style.top) >= 30)
	{
		document.all(id).style.top = parseInt(document.all(id).style.top) - parseInt((parseInt(document.all(id).style.top)-30)*0.2)-1;
		upp = setTimeout('flyttaupp(''+ id +'')',20);
	}
}

</script>
260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)