Chcę wiedzieć, kiedy obraz się załadował. Czy można to zrobić za pomocą oddzwonienia?
Jeśli nie, to czy w ogóle jest na to sposób?
javascript
image
callback
loading
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło
źródło
Odpowiedzi:
.complete
+ oddzwonienieJest to metoda zgodna ze standardami bez dodatkowych zależności i czeka nie dłużej niż to konieczne:
Źródło: http://www.html5rocks.com/en/tutorials/es6/promises/
źródło
img.complete
wywołaniem aaddEventListener
wywołaniem?load
detektor zdarzenia musi znajdować się welse
klauzuli, coimg.complete
może stać się prawdą zanimload
zdarzenie zostanie uruchomione , więc gdyby tak nie było, mógłbyś potencjalnieloaded
zadzwonić dwukrotnie (zauważ, że jest to stosunkowo prawdopodobne, że zmieni się tak, że stanieimg.complete
się prawdą tylko wtedy, gdy zdarzenie pożary).Image.onload () często działa.
Aby go użyć, musisz upewnić się, że powiązałeś program obsługi zdarzeń przed ustawieniem atrybutu src.
Powiązane linki:
Przykładowe zastosowanie:
źródło
load
wydarzenie jest nieważne? html.spec.whatwg.org/multipage/webappapis.html#handler-onload to definicja modułuonload
obsługi zdarzeń.Możesz użyć właściwości .complete klasy obrazu Javascript.
Mam aplikację, w której przechowuję wiele obiektów Image w tablicy, która będzie dynamicznie dodawana do ekranu, a gdy się ładują, piszę aktualizacje do innego div na stronie. Oto fragment kodu:
źródło
Możesz użyć zdarzenia load () - w jQuery, ale nie zawsze będzie ono uruchamiane, jeśli obraz zostanie załadowany z pamięci podręcznej przeglądarki. Ta wtyczka https://github.com/peol/jquery.imgloaded/raw/master/ahpi.imgload.js może zostać użyta do rozwiązania tego problemu.
źródło
Życie jest za krótkie dla jQuery.
źródło
src
pomocą JS.myImage.src = https://pmchollywoodlife.files.wordpress.com/2011/12/justin-bieber-bio-photo1.jpg?w=620
Zrób sztuczkę.Oto odpowiednik jQuery:
źródło
Nie nadaje się na rok 2008, kiedy zadano pytanie, ale obecnie działa to dobrze:
źródło
te funkcje rozwiążą problem, musisz zaimplementować
DrawThumbnails
funkcję i mieć zmienną globalną do przechowywania obrazów. Uwielbiam to, aby działało z obiektem klasy, który maThumbnailImageArray
zmienną składową, ale mam problemy!zadzwonił jak w
addThumbnailImages(10);
źródło
addThumbnailImages
funkcja. Zmniejsz to do odpowiedniego kodu, a usunę -1.Jeśli celem jest nadanie stylu img po wyrenderowaniu obrazu przez przeglądarkę, należy:
ponieważ najpierw przeglądarka
loads the compressed version of image
, potem nadecodes it
końcupaints
. ponieważ nie ma zdarzenia, dlapaint
którego należy uruchomić logikę po tym, jak przeglądarka madecoded
tag img.źródło
Jeśli używasz React.js, możesz to zrobić:
// ...
// ...}
Gdzie:
źródło