Tengo imágenes que tendrán una dimensión bastante grande y quiero reducirlas con jQuery manteniendo las proporciones restringidas, es decir, la misma relación de aspecto.
¿Alguien puede señalarme algún código o explicar la lógica?
javascript
jquery
image
resize
kobe
fuente
fuente
max-width
ymax-height
a100%
.<img src='image.jpg' width=200>
Respuestas:
Eche un vistazo a este código en http://ericjuden.com/2009/07/jquery-image-resize/
fuente
max-width
ymax-height
para100%
. jsfiddle.net/9EQ5cCreo que este es un método realmente genial :
fuente
Math.floor
que realmente ayudará con un diseño perfecto de píxeles :-)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'; }
Si entiendo la pregunta correctamente, ni siquiera necesitas jQuery para esto. La reducción de la imagen proporcionalmente en el cliente se puede hacer solo con CSS: solo configure su
max-width
ymax-height
a100%
.Aquí está el violín: http://jsfiddle.net/9EQ5c/
fuente
width: auto; height: auto;
para que tu código se ejecutara :)Para determinar la relación de aspecto , debe tener una relación a la que apuntar.
En este ejemplo, utilizo
16:10
ya que esta es la típica relación de aspecto del monitor.Los resultados de arriba serían
147
y300
fuente
De hecho, acabo de encontrarme con este problema y la solución que encontré fue extrañamente simple y extraña
¡y milagrosamente la imagen cambia de tamaño a la nueva altura y conserva la misma proporción!
fuente
Hay 4 parámetros para este problema.
Y hay 3 parámetros condicionales diferentes
solución
eso es todo lo que necesitas hacer.
Este es un foro maduro, no te estoy dando código para eso :)
fuente
Hace
<img src="/path/to/pic.jpg" style="max-width:XXXpx; max-height:YYYpx;" >
ayuda?El navegador se encargará de mantener intacta la relación de aspecto.
es decir, se
max-width
activa cuando el ancho de la imagen es mayor que la altura y su altura se calculará proporcionalmente. similarmax-height
entrará en vigor cuando la altura sea mayor que el ancho.No necesita ningún jQuery o javascript para esto.
Compatible con ie7 + y otros navegadores ( http://caniuse.com/minmaxwh ).
fuente
Esto debería funcionar para imágenes con todas las proporciones posibles
fuente
Aquí hay una corrección a la respuesta de Mehdiway. El nuevo ancho y / o alto no se establecieron en el valor máximo. Un buen caso de prueba es el siguiente (1768 x 1075 píxeles): http://spacecoastsports.com/wp-content/uploads/2014/06/sportsballs1.png . (No pude comentarlo anteriormente debido a la falta de puntos de reputación).
fuente
fuente
Si la imagen es proporcionada, este código llenará el contenedor con la imagen. Si la imagen no está en proporción, se recortará el ancho / alto adicional.
fuente
Sin temp-vars ni soportes adicionales.
Recuerde: a los motores de búsqueda no les gusta, si el atributo ancho y alto no se ajusta a la imagen, pero no conocen JS.
fuente
Después de algunas pruebas y errores, llegué a esta solución:
fuente
El cambio de tamaño se puede lograr (manteniendo la relación de aspecto) usando CSS. Esta es una respuesta más simplificada inspirada en la publicación de Dan Dascalescu.
http://jsbin.com/viqare
fuente
2 pasos
Paso 1) calcule la proporción del ancho original / altura original de la imagen.
Paso 2) multiplique la relación original_width / original_height por la nueva altura deseada para obtener el nuevo ancho correspondiente a la nueva altura.
fuente
Este problema puede resolverse mediante CSS.
fuente
Esto funcionó totalmente para mí para un elemento arrastrable - AspectRatio: true
fuente