Tenho imagens com dimensões bastante grandes e quero reduzi-las com o jQuery, mantendo as proporções restritas, ou seja, a mesma proporção.
Alguém pode me indicar algum código ou explicar a lógica?
javascript
jquery
image
resize
kobe
fonte
fonte
max-width
emax-height
como100%
.<img src='image.jpg' width=200>
Respostas:
Veja este código em http://ericjuden.com/2009/07/jquery-image-resize/
fonte
max-width
emax-height
para100%
. jsfiddle.net/9EQ5cEu acho que esse é um método muito legal :
fonte
Math.floor
realmente vai ajudar com um pixel de perfeita projeto :-)function imgSizeFit(img, maxWidth, maxHeight){ var ratio = Math.min(1, maxWidth / img.naturalWidth, maxHeight / img.naturalHeight); img.style.width = img.naturalWidth * ratio + 'px'; img.style.height = img.naturalHeight * ratio + 'px'; }
Se entendi a pergunta corretamente, você nem precisa do jQuery para isso. A redução proporcional da imagem no cliente pode ser feita apenas com CSS: basta definir its
max-width
emax-height
to100%
.Aqui está o violino: http://jsfiddle.net/9EQ5c/
fonte
width: auto; height: auto;
para obter o seu código em execução :)Para determinar a proporção , é necessário ter uma proporção a ser apontada.
Neste exemplo, eu uso
16:10
desde essa a proporção típica do monitor.Os resultados acima seriam
147
e300
fonte
na verdade, acabei de encontrar esse problema e a solução que encontrei era estranhamente simples e estranha
e milagrosamente a imagem é redimensionada para a nova altura e conservando a mesma proporção!
fonte
Existem 4 parâmetros para este problema
E existem 3 parâmetros condicionais diferentes
solução
é tudo o que você precisa fazer.
Este é um fórum maduro, não estou lhe dando código para isso :)
fonte
Será que
<img src="/path/to/pic.jpg" style="max-width:XXXpx; max-height:YYYpx;" >
ajuda?O navegador cuidará de manter intacta a proporção.
ou seja,
max-width
entra em ação quando a largura da imagem é maior que a altura e sua altura será calculada proporcionalmente. Da mesma forma,max-height
entrará em vigor quando a altura for maior que a largura.Você não precisa de jQuery ou javascript para isso.
Suportado por ie7 + e outros navegadores ( http://caniuse.com/minmaxwh ).
fonte
Isso deve funcionar para imagens com todas as proporções possíveis
fonte
Aqui está uma correção para a resposta de Mehdiway. A nova largura e / ou altura não estavam sendo definidas para o valor máximo. Um bom caso de teste é o seguinte (1768 x 1075 pixels): http://spacecoastsports.com/wp-content/uploads/2014/06/sportsballs1.png . (Não pude comentar acima devido à falta de pontos de reputação.)
fonte
fonte
Se a imagem for proporcional, esse código preencherá o wrapper com a imagem. Se a imagem não for proporcional, a largura / altura extra será cortada.
fonte
Sem temporários ou suportes adicionais.
Lembre-se: os mecanismos de pesquisa não gostam, se o atributo width e height não se encaixar na imagem, mas eles não conhecem o JS.
fonte
Após algumas tentativas e erros, cheguei a esta solução:
fonte
O redimensionamento pode ser alcançado (mantendo a proporção) usando CSS. Esta é uma resposta mais simplificada, inspirada no post de Dan Dascalescu.
http://jsbin.com/viqare
fonte
2 Passos:
Etapa 1) calcule a proporção da largura / altura do original da imagem.
Etapa 2) multiplique a proporção original_width / original_height pela nova altura desejada para obter a nova largura correspondente à nova altura.
fonte
Este problema pode ser resolvido por CSS.
fonte
Isso funcionou totalmente para mim para um item arrastável - aspectRatio: true
fonte