Quero saber quando uma imagem terminou de carregar. Existe uma maneira de fazer isso com um retorno de chamada?
Caso contrário, existe alguma maneira de fazer isso?
javascript
image
callback
loading
Ciro Santilli adicionou uma nova foto
fonte
fonte
Respostas:
.complete
+ retorno de chamadaEste é um método compatível com os padrões, sem dependências extras e não espera mais que o necessário:
Fonte: http://www.html5rocks.com/en/tutorials/es6/promises/
fonte
img.complete
ligação e aaddEventListener
ligação?load
ouvinte de evento deve estar em umaelse
cláusula, comoimg.complete
pode se tornar realidade antes doload
evento ser disparado, portanto, se não fosse, você poderia terloaded
chamado duas vezes (observe que é relativamente provável que isso mude, de forma queimg.complete
só se torna verdadeira quando o evento incêndios).Image.onload () geralmente funciona.
Para usá-lo, será necessário vincular o manipulador de eventos antes de definir o atributo src.
Links Relacionados:
Exemplo de uso:
fonte
load
evento não é válido? html.spec.whatwg.org/multipage/webappapis.html#handler-onload é a definição doonload
manipulador de eventos.Você pode usar a propriedade .complete da classe de imagem Javascript.
Eu tenho um aplicativo no qual armazeno vários objetos de imagem em uma matriz, que serão adicionados dinamicamente à tela e, enquanto eles carregam, escrevo atualizações para outra div na página. Aqui está um trecho de código:
fonte
Você pode usar o evento load () - no jQuery, mas ele nem sempre será acionado se a imagem for carregada do cache do navegador. Este plug-in https://github.com/peol/jquery.imgloaded/raw/master/ahpi.imgload.js pode ser usado para solucionar esse problema.
fonte
A vida é muito curta para o jquery.
fonte
src
JS.myImage.src = https://pmchollywoodlife.files.wordpress.com/2011/12/justin-bieber-bio-photo1.jpg?w=620
faz o truque.Aqui está o equivalente jQuery:
fonte
Não é adequado para 2008 quando a pergunta foi feita, mas hoje em dia isso funciona bem para mim:
fonte
essas funções resolverão o problema, você precisará implementar a
DrawThumbnails
função e ter uma variável global para armazenar as imagens. Adoro fazer isso funcionar com um objeto de classe que possui aThumbnailImageArray
variável como membro, mas estou com dificuldades!chamado como em
addThumbnailImages(10);
fonte
addThumbnailImages
função. Analise o código relevante e removerei o -1.Se o objetivo é estilizar o img depois que o navegador renderizar a imagem, você deverá:
porque o navegador primeiro
loads the compressed version of image
, depoisdecodes it
, finalmentepaints
. como não há evento,paint
você deve executar sua lógica após o navegador terdecoded
a tag img.fonte
Se você estiver usando o React.js, poderá fazer o seguinte:
// ...
// ...}
Onde:
fonte