Efectuarea de scripturi pe jQuery are uneori nevoie să lucreze cu imagini după ce sunt încărcate complet, de exemplu, pentru a calcula corect dimensiunea imaginii.
Am întâmpinat această problemă când am făcut cea mai mare parte a imaginilor. Scenariul a trebuit să găsească fiecare imagine, să determine dimensiunea ei și să se potrivească la baza acesteia în cadru.
Dacă nu am folosit testul - dacă imaginea a fost încărcată, dimensiunile nu au fost determinate corect. Permiteți-mi să vă reamintesc că pot fi definite după cum urmează (în cod, eu rotunji imediat valorile în pixeli):
Dacă executați acest cod, mărimea imaginii de 564.jpg va fi determinată o singură dată. Pentru mine, de exemplu, 1 din 10 ori nu funcționează. Problema este că este posibil ca imaginea să nu poată fi încărcată, iar scenariul va fi deja lansat. Prin urmare, determinarea dimensiunilor nu va avea loc.
Să rezolvăm codul astfel încât să putem verifica dacă imaginea a ieșit și, în funcție de aceasta, să execute codul nostru:
Aici folosim evenimentul $ (img) .on ('load', function ()<>); care vă permite să determinați dacă imaginea a fost descărcată și numai după executarea scriptului. Această soluție este adecvată în 90% din cazuri.
Dacă utilizați funcții pentru a determina dacă o imagine este încărcată, atunci scriptul trebuie să fie actualizat. Faptul este că imaginea poate fi amintită în memoria cache (care a fost cu mine și Joomla) și a fost încărcată imediat din ea. În acest caz, imaginea nu va fi descărcată de pe site, dar va fi preluată din cache, iar evenimentul de încărcare nu va funcționa. Puteți verifica acest lucru apăsând alternativ F5 și combinația (Ctrl + F5). Dacă apare 0, atunci aveți o memorie cache.
Să schimbați scriptul astfel încât să putem determina locul unde imaginea este preluată din memoria cache sau este descărcată de pe site:
>);
Citiți de asemenea
Fancybox 3 - Caracteristici suplimentare
Cum să inserați jocuri flash și videoclipuri SWF pe site