Tengo un elemento de lienzo con unas dimensiones de 979X482px y me gustaría que se estire para adaptarse al ancho de cualquier ventana de navegador determinada, manteniendo la relación de aspecto de ancho/alto 1 a 1, quiero que la altura se escale en relación con el ancho del lienzo. ¿Alguna sugerencia sobre cómo hacer esto con javascript/jQuery?Escala de ancho de lienzo HTML5 conservando relación de aspecto w/h
Respuesta
En primer lugar, establecer el ancho de la tela 100%
$('#canvas').css('width', '100%');
luego actualizar su base de altura en su anchura
$(window).resize(function(){
$('#canvas').height($('#canvas').width()/2.031);
});
2,031 = 979/482
Pero no se debe adjuntar a $ (ventana) .resize como yo ... es un mal comportamiento
Gracias por esto, pero parece que no puedo hacerlo funcionar. Debe '$ ('# canvas'). Height ($ ('canvas'). Width()/2.031);' be '$ ('# canvas'). Height ($ ('# canvas'). Width()/2.031); ', tomando nota de la ID? – dcd0181
Sí, olvidé poner el #canvas –
Esto causará que el contenido se vea borroso. Necesita manipular el contexto del lienzo como los otros estados de respuesta. – cyberwombat
Probar este
$('#canvas').css('width', $(window).width());
$('#canvas').css('height', $(window).height());
No es mantener la proporción –
Esto NO establece la escala, simplemente establece el tamaño de la lona para el ancho de la ventana y la altura de la ventana. – shadryck
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = 3*window.innerWidth/4;
o alguna variación de eso. ctx
es el contexto. ¡Una declaración if para casos límite podría ser necesaria!
Todas las respuestas anteriores son geniales, pero no escalarán proporcionalmente todas las imágenes dibujadas en el lienzo con el nuevo tamaño de lienzo. Si está utilizando cinética, he hecho una función aquí = http://www.andy-howard.com/how-to-resize-kinetic-canvas-and-maintain-the-aspect-ratio/
Estuve jugando con esto un tiempo yo mismo. El concepto gira en torno al conocimiento del ancho del lienzo. También debe asegurarse de que todos sus activos canvas también utilicen cálculos para la publicación dependiente del navegador. Documenté mi código, espero que ayude,
<body>
// in style make your canvas 100% width and hight, this will not flex for all browsers sizes.
<style>
canvas{
width: 100%;
height:100%;
position: relative;
}
</style>
<canvas id="myCanvas"></canvas>
<script>
// here we are just getting the canvas and asigning it the to the vairable context
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
// no we get with of content and asign the same hight as the with. this gives up aspect ration 1:1.
context.canvas.width = window.innerWidth;
context.canvas.height = window.innerWidth;
// If you want aspect ration 4:3 uncomment the line below.
//context.canvas.height = window.innerWidth;
</script>
</body>
- 1. escala HTML5 Video y relación de aspecto de rotura para llenar todo el sitio
- 2. Lienzo HTML5 y ancho de línea
- 3. unidades de lienzo html5
- 4. escala de diseño de Android con relación de aspecto fija en diferentes teléfonos
- 5. ¿Modos de escala de video HTML5?
- 6. ¿Cómo obtengo el ancho y alto de un lienzo HTML5?
- 7. matplotlib - subtramas con relación de aspecto fija
- 8. Lienzo dentro de lienzo de html5
- 9. HTML5 Canvas Escala de imagen Edición
- 10. inspector de lienzo HTML5?
- 11. Imagen a escala que mantiene su relación de aspecto en el fondo dibujable
- 12. Redimensionar UIImage con relación de aspecto?
- 13. Android Streaming Video - Necesita relación de aspecto
- 14. C#: Cómo calcular la relación de aspecto
- 15. Impresión de un lienzo html5?
- 16. Mantener la relación de aspecto con el ancho de la imagen en css
- 17. Java tamaño de imagen, mantener la relación de aspecto
- 18. Lienzo de escala en Android Bitmap
- 19. la escala de una imagen a la anchura disponible máximo, manteniendo la relación de aspecto y evitar ImageView espacio adicional
- 20. jQuery cambiar el tamaño a la relación de aspecto
- 21. Parcela de tizón, relación de aspecto de flecha
- 22. Configuración de la relación de aspecto de la trama 3D
- 23. Codeigniter que no mantiene la relación de aspecto
- 24. Zoom VideoView para completar el ancho, manteniendo la relación de aspecto
- 25. Redimensionar la imagen JPEG a un ancho fijo, manteniendo la relación de aspecto tal como está
- 26. Calcular altura para imagen/video según la relación de aspecto y el ancho
- 27. CSS: ¿ancho o alto del 100% manteniendo la relación de aspecto?
- 28. ImageMagick cambiar la relación de aspecto sin escalar la imagen
- 29. Recorte de la imagen de relación de aspecto en la rejilla de respuesta de arranque
- 30. HTML5 getImageData sin lienzo
Calcule el nuevo ancho y alto y aplíquelos a través de jquery/javascript. Hay toneladas de información sobre cómo calcificar dimensiones manteniendo proporciones. ¿Has probado algo tú mismo? ¿Algún código con el que estás teniendo problemas, tal vez? – Yoshi