我有一個尺寸爲979X482px的畫布元素,我想將它拉伸以適應任何給定瀏覽器窗口的寬度,保持寬高比爲1到1,我希望高度相對於畫布的寬度縮放。任何建議如何去做這個與JavaScript/jQuery?縮放保留寬高比的HTML5畫布寬度
回答
首先你畫布的寬度設置爲100%
$('#canvas').css('width', '100%');
然後在其寬度
$(window).resize(function(){
$('#canvas').height($('#canvas').width()/2.031);
});
2.031 =482分之979
更新其高度的底座但你不應該附加to $(window).resize like me ...這是一個不好的行爲
謝謝你,但我似乎無法得到它的工作。 ($''canvas')。height($('#canvas')。width()應該是$('#canvas')。height($('canvas')。width()/ 2.031)/2.031);',注意到ID? – dcd0181
是的,我忘了把#canvas –
這會導致內容模糊。作爲其他答案狀態,您需要操作畫布上下文。 – cyberwombat
試試這個
$('#canvas').css('width', $(window).width());
$('#canvas').css('height', $(window).height());
這不是保持比例 –
這不設定比例,它只是將畫布尺寸設置爲窗口寬度和窗口高度。 – shadryck
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = 3*window.innerWidth/4;
或一些變化。 ctx
是上下文。對於邊緣案例的if語句可能是必要的!
所有以前的答案都很好,但它們不會按比例繪製新畫布尺寸的比例畫布。如果你使用kinetic,我已經在這裏做了一個功能= http://www.andy-howard.com/how-to-resize-kinetic-canvas-and-maintain-the-aspect-ratio/
我一直在玩這個一段時間我自己。這個概念圍繞着瞭解畫布的寬度展開。您還需要確保您的所有canvas資源也使用計算來依靠瀏覽器進行發佈。我記錄了我的代碼,我希望它有幫助,
<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. HTML5畫布100%的高度和寬度
- 2. HTML5畫布高度和寬度屬性
- 3. HTML5:畫布寬度和高度
- 4. html5畫布防止線寬縮放
- 5. 縮放VideoView以填充寬度,保持寬高比
- 6. IE8不保留寬高比時僅寬度或高度改變
- 7. html5畫布長寬比?
- 8. 設置HTML5畫布高度和寬度並且具有縮放內容
- 9. 畫布高度和寬度
- 10. 將ImageView縮放到父母高度,同時保持寬高比
- 11. 如何讓YouTube播放器縮放至頁面寬度,並保持寬高比?
- 12. 根據長寬比使Flash文件縮放到div寬度並保持高度
- 13. HTML5畫布高度和寬度100%扭曲遊戲動畫
- 14. IE9畫布縮放問題。將不會保持高寬比以適應容器
- 15. HTML5帆布100%寬度視口高度?
- 16. 規模HTML5畫布div的寬度和高度
- 17. 如何獲取HTML5畫布的寬度和高度?
- 18. 保持固定高度的高寬比
- 19. 按比例縮放div;保留長寬比
- 20. 按比例縮放的位圖保持寬高比
- 21. 裁剪畫布/導出具有一定寬度和高度的html5畫布
- 22. 使視頻寬高比保持最大100%寬度和高度
- 23. Imageview保持寬高比,填充寬度和高度
- 24. CSS:100%寬度或高度,同時保持寬高比?
- 25. CGAffineTransform僅縮放寬度和高度
- 26. 圖像自動高度縮放寬度
- 27. 元素高度/寬度縮放問題
- 28. HTML5:畫布圈爲橢圓形,因爲寬度和高度
- 29. 設置寬度/高度時,在HTML5畫布中禁用重置
- 30. WPF縮放但保留一些項目的寬度,高度和位置
計算新的寬度和高度,並通過jquery/javascript應用它們。關於如何計算維度的比例,有大量的信息。你有沒有嘗試過自己?有些代碼可能會遇到問題? – Yoshi