Existe uma maneira confiável e independente de estrutura de determinar as dimensões físicas de um <img src='xyz.jpg'>
redimensionado no lado do cliente?
javascript
image
Pekka
fonte
fonte
img.onload = function () {console.log(img.height, img.width)}
Respostas:
Você tem 2 opções:
Opção 1:
Retire os
width
eheight
atributos e leroffsetWidth
eoffsetHeight
Opção 2:
Crie um
Image
objeto JavaScript , defina osrc
e leia owidth
eheight
(você nem mesmo precisa adicioná-lo à página para fazer isso).Edit by Pekka : Conforme combinado nos comentários, mudei a função para rodar no evento ´onload´ da imagem. Caso contrário, com imagens grandes,
height
ewidth
não retornaria nada porque a imagem ainda não foi carregada.fonte
newImg.onload
função para garantir que a imagem seja carregada quando eu definir a largura / altura. Você está bem comigo editando sua resposta de acordo?if(newImg.complete || newImg.readyState === 4) newImg.onload();
no final de sua função, isso corrigirá o problema no Chrome / OSX que faz com que o onload não seja acionado quando as imagens são carregadas do cache.As imagens (pelo menos no Firefox) têm uma
naturalWidth
propriedade / height para que você possa usarimg.naturalWidth
para obter a largura originalFonte
fonte
Você pode pré-carregar a imagem em um objeto Imagem javascript e, em seguida, verificar as propriedades de largura e altura desse objeto.
fonte
fonte
element
uma seleção jQuery? E quanto à altura?Só mudando um pouco a segunda opção do Gabriel, para ficar mais fácil de usar:
Html:
Chamada de amostra:
fonte