Ho un elemento canvas con dimensioni di 979X482px e mi piacerebbe averlo allungare per adattarsi alla larghezza di qualsiasi finestra del browser, mantenendo le proporzioni di larghezza/altezza 1 a 1, voglio che l'altezza si riduca rispetto alla larghezza della tela. Qualche suggerimento su come procedere con javascript/jQuery?Ridimensionamento larghezza tela HTML5 preservando le proporzioni w/h
risposta
Per prima cosa impostare la larghezza della tela per 100%
$('#canvas').css('width', '100%');
quindi aggiornare la sua base di altezza sulla sua larghezza
$(window).resize(function(){
$('#canvas').height($('#canvas').width()/2.031);
});
2,031 = 979/482
Ma non si dovrebbe applicare a $ (finestra) .resize come me ... è un cattivo comportamento
Grazie per questo, ma non riesco a farlo funzionare. Dovrebbe '$ ('# canvas'). Height ($ ('canvas'). Width()/2.031);' be '$ ('# canvas'). Height ($ ('# canvas'). Width()/2.031); ', notando l'ID? – dcd0181
Sì, ho dimenticato di inserire #canvas –
Ciò renderà il contenuto sfocato. È necessario modificare il contesto di canvas come gli altri stati di risposta. – cyberwombat
Prova questo
$('#canvas').css('width', $(window).width());
$('#canvas').css('height', $(window).height());
Non mantiene il rapporto –
Questo NON imposta la scala, semplicemente imposta la dimensione della tela alla larghezza della finestra e all'altezza della finestra. – shadryck
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = 3*window.innerWidth/4;
o qualche variazione di questo. ctx
è il contesto. Potrebbe essere necessaria una dichiarazione if per casi limite!
Tutte le risposte precedenti sono eccezionali, ma non ridimensionano proporzionalmente tutte le immagini disegnate sulla tela con le nuove dimensioni della tela. Se stai usando la cinetica, ho creato una funzione qui = http://www.andy-howard.com/how-to-resize-kinetic-canvas-and-maintain-the-aspect-ratio/
Mi stavo divertendo da un po '. Il concetto ruota attorno alla conoscenza della larghezza della tela. È inoltre necessario assicurarsi che tutte le risorse del canvas utilizzino anche i calcoli per la pubblicazione in base al browser con. Ho documentato il mio codice, spero che sia d'aiuto,
<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. jQuery ridimensionamento proporzioni
- 2. JavaFX - SplitPane, ridimensionamento e proporzioni
- 3. ridimensionamento di un'immagine, ma mantenere le sue proporzioni
- 4. Ridimensionamento di ImageView per adattarsi alle proporzioni
- 5. Mantenere le proporzioni di un QWidget sottoclassato durante il ridimensionamento
- 6. Ridimensionamento e ritaglio dell'immagine con GD mantenendo le proporzioni
- 7. Come ottengo la larghezza e l'altezza di una tela HTML5?
- 8. Determina la larghezza della stringa nella tela HTML5
- 9. html5 canvas previene il ridimensionamento della larghezza di riga
- 10. Scorrimento personalizzato su tela HTML5
- 11. Ridimensiona l'immagine JPEG a larghezza fissa, mantenendo le proporzioni come è
- 12. Disegna video su tela HTML5
- 13. Tela all'interno di html5
- 14. Limita la larghezza dell'immagine con orientamento verticale/preserva le proporzioni
- 15. iOS mantenere le proporzioni di UIImageView ma riempire la larghezza
- 16. Zoom VideoView per riempire la larghezza, mantenendo le proporzioni
- 17. Ridimensionamento di un'immagine per adattarlo alla tela
- 18. Unità viewport, mantenendo le proporzioni?
- 19. Mantieni proporzioni con larghezza immagine in css
- 20. FancyBox ridimensionamento larghezza
- 21. Ridimensionamento di un System.Drawing.Bitmap in base a una determinata dimensione mantenendo le proporzioni
- 22. Traduzione di una tela HTML5
- 23. Scorrimento orizzontale su tela. HTML5
- 24. tela Immagine di ridimensionamento/scew/ND
- 25. Mantenere le proporzioni di un div in base all'altezza
- 26. css immagine di sfondo ridimensionamento larghezza altezza del raccolto
- 27. Come gestire le diverse proporzioni in libGDX?
- 28. La tela HTML5 disabilita le antialias sulle primitive (curve, ...)
- 29. HTML5 canvas sensibili: il ridimensionamento della tela del browser disegnano sparire
- 30. HTML5 Canvas 100% altezza e larghezza
Calcolare la nuova larghezza e altezza e applicarli tramite jquery/javascript. Ci sono un sacco di informazioni là fuori su come calcolare le dimensioni mantenendo le proporzioni. Hai provato qualcosa da solo? Qualche codice con cui stai avendo problemi, forse? – Yoshi