timeoutproblem

JavaScript

1 svar · 182 visningar · startad av AndyH84

Medlem sedan okt. 20022 inlägg
Trådstart#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>
389 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
126 ms — deklarationer (db)
125 ms — hämta statistik (db)
127 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)