寸法が 979X482px のキャンバス要素があり、幅/高さのアスペクト比を 1 対 1 に保ちながら、指定されたブラウザー ウィンドウの幅に合わせて伸縮させたいのですが、高さを幅に対して相対的にスケーリングする必要があります。キャンバス。javascript/jQueryでこれを行う方法について何か提案はありますか?
39940 次
5 に答える
13
ctx.canvas.width = window.innerWidth;
ctx.canvas.height = 3*window.innerWidth/4;
またはそのバリエーション。ctx
コンテキストです。エッジ ケースの if ステートメントが必要になる場合があります。
于 2012-05-30T04:28:17.533 に答える
6
まず、キャンバスの幅を 100% に設定します
$('#canvas').css('width', '100%');
次に、幅に基づいて高さを更新します
$(window).resize(function(){
$('#canvas').height($('#canvas').width() / 2.031);
});
2.031 = 979/482
しかし、私のように $(window).resize にアタッチするべきではありません...それは悪い振る舞いです
于 2012-05-25T07:34:12.327 に答える
1
以前の回答はすべて素晴らしいものですが、キャンバスに描画されたすべての画像が新しいキャンバス サイズに比例して拡大縮小されるわけではありません。キネティックを使用している場合は、ここに関数を作成しました = http://www.andy-howard.com/how-to-resize-kinetic-canvas-and-maintain-the-aspect-ratio/
于 2014-05-13T06:35:15.693 に答える
-3
これを試して
$('#canvas').css('width', $(window).width());
$('#canvas').css('height', $(window).height());
于 2012-05-25T07:45:07.717 に答える