Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JQuery] Płynne przewijanie
inc0
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.05.2009

Ostrzeżenie: (0%)
-----


Witam!

Mam na swojej stronie menu do wyboru obrazka z galerii (http://inc0.dreamhosters.com/galeria/). Algorytm przewijania w poziomie jest dość prymitywny, ale działa. Mam pytanie, czy ktoś ma jakiś pomysł żeby dodać efekt płynnego zwalniania diva po przesunięciu? Tak, by nie zatrzymywał się momentalnie, tylko płynnie.

Dzięki!
Michał
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Matematycznie wygląda to w ten sposób
Kod
var endX = 100; // x koncowe elementu

element.x += (endX - element.x) / 4; // operacja wykonywana co "klatke" animacji


Element porusza się w strone wartości endx z coraz mniejszą prędkością.
Przykład:

Kod
var endX = 100;

// 1 krok (pozycja poczatkowa 200)
(100 - 200) / 4 = -25;
//wiec
200 + (- 25) = 175;


// 2 krok
(100 - 175) / 4 = -18.75
// wiec
175 + (- 18.75) = 156.25


Kiedy zatrzymać animacje? Np wtedy gdy odległość między punktami jest mniejsza niż 1 px
Kod
if( Math.abs(endX - element.x) <= 1)
{
element.x = endX; // przy odpowiednio duzy odswiezaniu i odpowiednio małym dzielniku (nasza 4) kompletnie nie widac lekkiego "przeskoku"
// zakoncz animacje
}


W javascripcie oczywiscie musisz uzyć właściwości left, ale przedstawiałem tylko zasadę działania.

Ten post edytował wookieb 31.10.2009, 10:36:25
Go to the top of the page
+Quote Post
inc0
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.05.2009

Ostrzeżenie: (0%)
-----


Dzięki! Po dokonaniu drobnych zmian mam już pomysł, jak to zrobić:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:24