Diskuze: Jquery - vyčkání na dokončení animace
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj, najlepšie by bolo, ak by si tu vložil aj kód, aby sme sa na to vedeli pozrieť, prípadne nejaký screenshot, takto ako si to napísal, to je veľmi všeobecné.
Ahoj, udělal bych tam nějaký timout, který určí jestli už animace skončila nebo ne a na základě toho bych zakázal nebo povolil eventy u těch checkboxů.
Například pokud animace trvá 1 sekundu tak bych po kliknutí na chceckbox na právě tu 1 sekundu znemožnil klikání nebo volání dané funkce. Popřípadě se to dá dělat přes Date() a časy .-)
Například pokud znáš Lodash nebo Underscore knihovny tak můžeš
využít toto:
https://lodash.com/docs/4.17.4#…
jQuery animace mají complete argument - funkci.
Jak ti radí Verquido, stalo by za zvážení pro běhu aplikace checkbox
zneaktivnit a po jejím dokončení znovu oživit. No a nebo se pořádně
podívej na jQuery animace, správně umí queuing, což je přesně to co
potřebuješ.
Timeout nepomôže, nemusíš vopred vedieť koľko animácia potrvá, navyše je nepresný a callback v animate metóde nemusí byť v niektorých sitáciách možné použiť. Konkrétne sa mi to stalo, keď som položky menu, li elementy, vysunul o 100% von z viewportu a animoval ich postupný príchod na obrazovku. A chcel som po tom, ako skončí kompletná animácia, po poslednom li, zmeniť farbu aktívneho li. Stálo ma nemálo googlenia ako na to pravým, "jQuery way" spôsobom. Ale našiel som to, takže aby si nematuroval nad tým istým, tu ho máš:
$(selektor).animate({vlastnosti}, trvanie).promise().then(callback po skončení animácie)
A tu máš konkrétny príklad použitia: jsfiddle
Všem strašně moc děkuji za radu ! 
Tak jsem to nakonec udělal že na začátku animce dám všechny checkboxy jako
disable a po jejím skončení je aktivuji. Může to tak být ? Moc nevím jk
jinak to udělat můžu tomu zakázat click event, ale to je zase problém, že
na checkbox se dá klikat ale nic nedělá takže by to dělalo zmatek.
Podle me spravne reseni a tvuj pristup je naprosto spravny. Kdyz je to neaktivni, tak disabled.
Áno, tak nejak som si to aj predstavoval:
Budeš tak mať istotu, že budú zakázané / povolené presne počas trvania animácie.
Ono se nemusí ani používat to promise ne ? Stačí to udělat takhle:
$(this).html(addSpaces).animate({'opacity' : 1}, 100, function(){
//Zde všechny povolím - konec animace
});
Je možné, že je to takhle špatně, takže budu rád pokuď mě opravíte.
Nie nie, je to v poriadku aj tak, ako to máš. Pokiaľ máš len jednu
animáciu, nie viacero naraz, stačí Ti callback. Ale tak či tak je vhodné si
na to zvyknúť, miesto používania callbacku v animácii, lebo toto funguje
tak ako človek očakáva, vždy
) Či už selektor vyberie jeden, či viac elementov, callback v then
počká, kým skončia všetky animácie. Navyše je to asi aj jemne
prehľadnejšie... Ale tak či onak, nijak zvlášť na tom nezáleží. To, ako
si to vyriešil, je v poriadku. A toto už je fakt len "opinion based", takže
všetky moje argumenty môžeš pokojne aj ignorovať.
$('element(s)')
.animate({attribute: value}, duration)
.promise().then(function () {
//callback implementation
})
Ignorovat určitě ne ! Jsem rád za takovéto rady.
A jak je to vysvětleno tak vidím,
že to má smysl používat.
Díky moc
Zobrazeno 11 zpráv z 11.