![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie
Piszę fragment kodu odpowiedzialny za poruszanie czterema obrazkami. Sprawa dokładnie wygląda tak: obrazek się pojawia, dzięki animate przesuwa na koniec jednego diva, zanika, pojawia w kolejnym, przesuwa na jego koniec, zanika ponownie, pojawia się w ostatnim div, gdzie przesuwa się na jego koniec i tam zostaje. A potem kolejny, kolejny i kolejny. Nie jest to trudny kod, ale aby wszytko działało w odpowiedniej kolejności używam callbacków. Przy jednym obrazku to nie problem, ale przy czterech ten kod zaczyna robić się zawiły, a to nie jest prawidłowe. Zastanawiam się więc jak w jQuery zachowując kolejność wykonywanego kodu uniknąć dużej ilości callbacków? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 58 Dołączył: 14.07.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie jest to problem samego jquery, tylko tego w jaki sposób działa javascript ogólnie. A działa asynchronicznie i ty chcesz żeby działał asynchronicznie, żeby jedna akcja drugiej nie blokowała. Dlatego też zostały wprowadzone obietnice (promise) oraz od całkiem niedawna generatory i ich async/await odpowiedniki. Dzięki czemu możesz tworzyć kod który wygląda jak synchroniczny, a jest asynchroniczny. Od jakiegoś czasu używam takiego podejścia (raczej głównie po stronie backendu) i jest to ogromny krok do przodu i już nigdy nie chcę używać callback'ów czy then'ów.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Czy ta animacja powoduje modyfikacje drzewa DOM? Jeśli nie, tj. element pozostaje w tym samym miejscu w strukturze DOM podczas całej animacji, to może użyc animacje w CSS?
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
promis powinno być ok(wydawało mi się że jest przestarzały), ale po całym dniu studiowania nadal nie mogę go poprawnie użyć z moim kodem.
W tym przypadku pierwsza i druga część kodu działa poprawnie, asynchronicznie, ale potem zaczynają się problemy. Dwa ostatnie etapy niestety już wyświetlają się razem. Przy próbach użycia then w ogóle cały czas były błędy. Przy podzieleniu tego na cztery funkcje i też był problem przy trzecim i czwartym etapie. Może podpowiecie coś jeszcze. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 09:07 |