# 12: Atzvana funkcijas - CSS-triki

Anonim

Visu iecienītākais: koncepta video laiks! Atzvani ir svarīgs JavaScript jēdziens. Tās ir funkcijas, kuras tiek izsauktas, kad darbība ir pabeigta. Pēc tam piešķiriet mūsu kodam struktūru un laiku.

Piemēram, izmantojiet animāciju, kuru izmantojām pēdējā videoklipā. Animāciju palaišana prasa laiku. Ko darīt, ja vēlaties, lai kaut kas cits notiktu tieši tad, kad animācija būs pabeigta? Vai jums ir jādara setTimeouttikpat ilgi kā animācija? Nē. jQuery dod mums atzvanīšanas funkcijas, kas tiek izmantotas tieši šim nolūkam.

Parasti tie ir papildu parametrs, kuru mēs nododam metodei. Animācijas gadījumā mēs nododam funkciju kā pēdējo parametru. Tā ir atzvanīšanas funkcija, un tā tiks izsaukta, kad animācija būs pabeigta.

$("#element").animate(( // stuff to animate ), function() ( // callback function ));

Varbūt tas izskatās nedaudz bailīgs, bet būtībā mēs to vienkārši darām:

.animate(a, b)

Kur aatrodas rekvizītu un vērtību objekts, un btā ir atzvanīšanas funkcija.

Bet no pēdējā videoklipa mēs zinām, ka animācijai var būt nepieciešams arī laika parametrs, kas norāda animācijas ilgumu. Kur tas paliek? Tas ir izvēles parametrs, tāpat kā atzvanīšanas funkcija. Ja mēs vēlētos to izmantot, mēs to ievietotu tieši vidū, tāpēc būtībā:

.animate(propertiesObject, duration, callback);

Ir arī vēl viens izvēles parametrs, virkne, kuru mēs varam nodot, lai norādītu atvieglojuma vērtību.

.animate(propertiesObject, duration, easing, callback);

jQuery vienkārši ir foršs un gudrs par šiem izvēles parametriem. Ja jūs neatstājat vidējos divus un vienkārši nododat atzvanīšanu, tas var pateikt, ka tas, ko jūs nododat, ir funkcija, nevis skaitlis vai virkne, tāpēc tā zina, ka domājat atzvanīšanas funkciju. Jums nav jānorāda viltus vērtības vai kaut kas cits. Tas ir tikai labs API dizains!

Aplūkojot jQuery dokumentāciju, viņi to parāda šādi:

. dzīvs (īpašības (, ilgums) (, atvieglojums) (, pilnīgs))

Tad tūlīt pēc tam izskaidrojiet paredzamos veidus.

Bet vienalga, atgriežoties pie atzvanīšanas. Jūs varat iegūt diezgan ligzdu. Iedomājieties, ka atzvanīšanas funkcijā tiek ievietota cita animācija, un šai animācijai ir savs atzvans. Tas ir pilnīgi saprātīgi, jo jūs varētu vēlēties veikt daudzpakāpju animāciju. Jums vienkārši jāpaliek organizētam.

Skatiet Chris Coyier (@chriscoyier) pildspalvu 450c5810be27a9a8946cb8012cbd1213 vietnē CodePen

Mēs šeit vienkārši izmantojam animāciju. Varbūt vēl biežāk atzvanīšanas funkcijas izmanto Ajax. Ajax ir tas, kad pārlūks izsauc citu resursu, neatsvaidzinot lapu. Tas var aizņemt pilnīgi nezināmu laiku. Tas ir atkarīgs no joslas platuma un latentuma, faila lieluma, kļūdu apstākļiem un visa veida sīkumiem. Jūs, visticamāk, nevarat neko darīt ar šo Ajax pieprasījumu, kamēr neko neatgūstat vai kā citādi vairāk informācijas. Atzvana funkcijas ir ideāli piemērotas tam, un mēs to aplūkosim vēlāk.