webForumDet fria alternativet

Snabb lagerförflyttning? While?

JavaScript

5 svar · 273 visningar · startad av M@rtin

Medlem sedan dec. 19992 085 inlägg
Frågan#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? :)

Medlem 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.

Medlem 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 :)

Medlem sedan mars 2000126 inlägg
#4

Nyfiken

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

//Broskan

Medlem 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...

Medlem sedan mars 2000126 inlägg
#6

Snyggt

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

//Broskan

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)