Quiero saber cuándo una imagen ha terminado de cargarse. ¿Hay alguna manera de hacerlo con una devolución de llamada?
Si no, ¿hay alguna manera de hacerlo?
javascript
image
callback
loading
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente
fuente
Respuestas:
.complete
+ devolución de llamadaEste es un método compatible con los estándares sin dependencias adicionales, y no espera más de lo necesario:
Fuente: http://www.html5rocks.com/en/tutorials/es6/promises/
fuente
img.complete
llamada y laaddEventListener
llamada?load
oyente del evento debe estar en unaelse
cláusula, ya queimg.complete
puede hacerse realidad antes deload
que se active el evento, por lo tanto, si no fuera así, podría haberloaded
llamado dos veces (tenga en cuenta que es probable que esto cambie de manera tal queimg.complete
solo se convierta en realidad cuando el evento incendios).Image.onload () a menudo funcionará.
Para usarlo, deberá asegurarse de vincular el controlador de eventos antes de establecer el atributo src.
Enlaces relacionados:
Ejemplo de uso:
fuente
load
evento no es válido? html.spec.whatwg.org/multipage/webappapis.html#handler-onload es la definición delonload
controlador de eventos.Puede usar la propiedad .complete de la clase de imagen Javascript.
Tengo una aplicación donde almaceno varios objetos de imagen en una matriz, que se agregarán dinámicamente a la pantalla, y a medida que se cargan, escribo actualizaciones en otro div en la página. Aquí hay un fragmento de código:
fuente
Puede usar el evento load () en jQuery, pero no siempre se activará si la imagen se carga desde la memoria caché del navegador. Este complemento https://github.com/peol/jquery.imgloaded/raw/master/ahpi.imgload.js se puede utilizar para solucionar ese problema.
fuente
La vida es demasiado corta para jquery.
fuente
src
con JS.myImage.src = https://pmchollywoodlife.files.wordpress.com/2011/12/justin-bieber-bio-photo1.jpg?w=620
Hace el truco.Aquí está el equivalente de jQuery:
fuente
No es adecuado para 2008 cuando se hizo la pregunta, pero en estos días esto funciona bien para mí:
fuente
Estas funciones resolverán el problema, debe implementar la
DrawThumbnails
función y tener una variable global para almacenar las imágenes. Me encanta hacer que esto funcione con un objeto de clase que tiene elThumbnailImageArray
variable como miembro, ¡pero estoy luchando!llamado como en
addThumbnailImages(10);
fuente
addThumbnailImages
función. Reducirlo al código relevante y eliminaré el -1.Si el objetivo es diseñar el img después de que el navegador haya procesado la imagen, debe:
porque el navegador primero
loads the compressed version of image
, luegodecodes it
, finalmentepaints
. ya que no hay ningún evento parapaint
usted, debe ejecutar su lógica después de que el navegador tengadecoded
la etiqueta img.fuente
Si está utilizando React.js, puede hacer esto:
// ...
// ...}
Dónde:
fuente