Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Złożona animacja - podczas jednej, dwie inne, złudzenie lecącej piłki
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Chcę uzyskać taką animację: piłka (img) z pewnego punktu ma przelecieć do drugiego punktu (mam współrzędne drugiego punktu). To mi działa:
Kod
$('#ball').animate({left:position.left,top:position.top},2000);

(position to pobrany wcześniej offset elementu, do którego piłka ma polecieć).
A jak dodać teraz złudzenie, że piłka leci do góry, a później na doł - zrobiłbym to tak, że przez połowe czasu lotu piłka zwiększa swój rozmiar, a przez drugą połowę - zmniejsza do wartości początkowej. Tylko jak to napisać?
Od strony technicznej ma to wyglądać tak:
- piłka przez 2 sekundy leci z miejsca, w którym aktualnie się znajduje, na wskazany element
- przez pierwszą sekundę powiększa się o np. 2px (ma wymiary 8px na 8px)
- przez drugą sekundę zmniejsza się do wielkości początkowej

Będę bardzo wdzięczny za wskazówki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Apocalyptiq 7.12.2008, 18:19:27
Go to the top of the page
+Quote Post
lord_t
post
Post #2





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Może to Ci pomoże.

http://plugins.jquery.com/project/jphysics
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Z tego co widzę, ten plugin pomaga w animacjach "widzianych z boku", a ja chcę tą animacje "z góry" (widać jest boisko z góry, na nim zawodnicy oznaczeni cyferkami i pomiędzy tymi cyferkami lata piłka). Ale dzięki za polecenie tego pluginu - ostatnio zainteresowałem się zagadnieniem tworzenia gier/animacji w jQ, więc do innych celów mi się przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A co do tej animacji z piłką - piłka porusza się z jednego miejsca na drugie, a podczas tego najpierw zwiększa, a później zmniejsza swoją wielkość - ma ktoś jakieś pomysły jak to można zrobić?
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
a ja chcę tą animacje "z góry"

A bawiłeś się trochę demkiem? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wszystko da się zrobić, tylko pobaw się początkową i końcową pozycją.

Cytat
A co do tej animacji z piłką - piłka porusza się z jednego miejsca na drugie, a podczas tego najpierw zwiększa, a później zmniejsza swoją wielkość

Wystartuj równolegle metodę animate. Tylko równolegle, a nie w nowej linijce. ;P
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #5





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Ale jak, wtedy musiałbym znać pozycje, w jakiej znajdzie się piłka po połowie drogi? No bo:
animacja: połowa drogi, zwiększenie sie - 1s.
animacja: druga połowa drogi, zmniejszenie się - 1s.
A tej pozycji środkowej nie znam. No chyba że bawić się w wyliczanie tej pozycji? Czy istnieje może jakiś prostszy sposób?
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A po co znać pozycję? Moduł fizyki przesuwa odpowiednio piłkę, animator z jQuery tylko zmienia rozmiary.

Dzielisz sobie wszystko czasowo i będzie ok.
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #7





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Ale jak to napisac w jQ? Stosunkowo nowy jestem w jQ, używam go gdzies od dwoch tygodni.
Kod
$("#ball").animate({left:leftPosition,top:topPosition},2000);

To mi przeniesie piłke w 2 sekundy we wskazane miejsce.
Kod
$("#ball").animate({left:leftPosition,top:topPosition,width:"+=5",height:"+=5"},2000);

Takie cos powinno przeniesc pile i podczas animacji powiększyc jej szerokosc i wysokosc o 5px (nie jestem pewny czy dobrze napisałem, pisze ze szkoly). No i jak to przerobic, aby do polowy drogi sie powiekszała o te np. 5px, a przez druga połowe - powróciła do wymiarów początkowych?
Go to the top of the page
+Quote Post
ziqzaq
post
Post #8





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Witam.
Chcesz "animate" ok.
W sumie mamy dwie animacje - piłka się zwiększa i zmniejsza - tak? A więc np.:
Kod
var o = $('#mojeid');
o.animate(opcje...).animate(opcje...);

Przeczytaj sobie "animate( params, options )" na samym dole strony jQuery animate.
Zwróć uwagę na zakładki "options" i opcję "easing", i "examples".

Błąd (chyba):
Kod
width:"+=5",height:"+=5"

co konstrukcja "+=" ma robić w tym stringu?

Edit: literówka

Ten post edytował ziqzaq 12.12.2008, 13:47:33
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: 24.08.2025 - 12:42