webForumDet fria alternativet

Snabb lagerförflyttning? While?

5 svar · 271 visningar · startad av M@rtin

M@rtinMedlem sedan dec. 19992 085 inlägg
#1

Jag skulle behöva flytta ett lager med ganska hög hastighet.
Använder jag setTimeout på en funktion med 1ms som tid så går det alldeles för sakta. Jag kan ju göra så att lagret flyttas mer än en pixel i taget men det blir inte snyggt.

Jag tänkte att det borde gå snabbare om man scrollade med en while loop men då räknade loopen först fram så många pixlar som lagret skulle flyttas och sen flyttade den det dit på en gång så det blev inte alls som jag ville.

Nån som har en idé om hur man ska lösa detta? :)

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Om du gör en funktion (eller rättare sagt försöker) som ittereras (upprepas) 1 ggn / ms m.h.a. setTimeout och varje gång flyttar ett lager 1 pixel så kommer du att märka att det tar mycket längre tid än 1 sek (1000 ms) att flytta lagret 1000 pixel. Alltså kan vi konstatera att webbläsare inte hinner med. Det du får göra då är att flytta lagret fler pixlar varje gång istället. Sedan kan du kanske snygga till det genom att sakta ner (ta färre pixlar) i början och slutet av scrollen för att få en mjukare rörelse.

M@rtinMedlem sedan dec. 19992 085 inlägg
#3

Ah. Ja nu gjorde jag så att hastigheten beror på hur lång sträck den har kvar att förflytta sig. Blev riktigt snyggt :)

BroskanMedlem sedan mars 2000126 inlägg
#4

Nyfiken

Får vi se hur du löste det????

//Broskan

M@rtinMedlem sedan dec. 19992 085 inlägg
#5

Lite svårt att förklara. Tror nästan du får kolla koden:

http://194.236.155.208/buss/

Funkar bara i IE än så länge...

BroskanMedlem sedan mars 2000126 inlägg
#6

Snyggt

Ja det där vart väl kanonbra eller.

//Broskan

136 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)