キャンバスの幅と高さの設定に関する問題点
最近、HtmlのCanvasタグに手を入れる必要があり、勉強しました。
キャンバスは、HTML5で追加された新しいコンポーネントです。カーテンのようなもので、そこにJavaScriptでさまざまなグラフやアニメーションなどを描くことができる。
Canvasがない時代には、Flashプラグインでしか描画できず、ページはJavaScriptでFlashとやりとりする必要がありました。Canvasがあれば、もうFlashは必要なく、JavaScriptで直接描画することができます。
困ったのは、チュートリアルを少し読んで自分でハローワールドを書いたときです。次のコードを見てください。
<!DOCTYPE html>
<html lang="en">
<body>
<canvas id="canvas1" style="width: 200px;height: 200px; border:1px solid black;">
</canvas>
<script>
var oC = document.getElementById('canvas1');
var ctx = oC.getContext("2d");
ctx.moveTo(0, 0);
ctx.lineTo(200, 200);
ctx.stroke();
</script>
</body>
</html>
上記のコードは、キャンバス上に幅と高さがそれぞれ200pxで、(0,0)から始まり(200,200)で終わる線を描きたいことを意味します。
しかし、ブラウザで描画される画像は
この画像を見てください~なぜこのように斜めになっているのでしょうか?斜めの線であるべきなのに・・・。
それから、canvasタグで幅と高さを設定する場合、いくつかのやり方とその結果があることを、少し調べて知りました。
<ブロッククオート
Canvas要素のデフォルトは幅300px、高さ150pxで、その幅と高さを設定するには、次のようにします。
方法1.
1 <canvas width="500" height="500"$amp;>amp;$lt;/canvas>
方法2:HTML5 Canvas APIを使用して操作する
1 var canvas = document.getElementById('id of the canvas you want to manipulate');
2 canvas.width = 500;
3 canvas.width = 500;
幅と高さを以下のように設定すると、Canvas要素は元のサイズから設定された幅と高さに引き伸ばされます。
方法1:CSSを使用すると引き伸ばされる
1 操作したいキャンバスの#id
2 width:1000px;
3 高さ:1000px。
4 }
また、インターラインスタイルにstyle=""が含まれている場合も、上記の例のように、ストレッチが発生します。
方法2:HTML5 Canvas APIの操作を使用する 引き延ばされることになる
1 var canvas = document.getElementById('id of the canvas you want to manipulate');
2 canvas.style.width = "1000px"。
3 canvas.style.height = "1000px"。
方法3:jqueryの$("#id").width(500)を使用し、引き伸ばします。
その他:canvasの幅と高さはパーセントで表すこともできません。
つまり、上記の情報からわかるように、上の例のコードではキャンバスの幅と高さが引き伸ばされているため、期待される画像と矛盾しているのです。
では、キャンバスの幅と高さを正しく設定するように、コード例を書き換えてみました。
<!DOCTYPE HTML>
<html>
<body>
<canvas id="myCanvas" width="200" height="200" style="border:1px solid black;">
Your browser does not support the canvas element.
</canvas>
<script type="text/javascript">
var c = document.getElementById("myCanvas");
var cxt = c.getContext("2d");
cxt.moveTo(0, 0);
cxt.lineTo(200, 200);
cxt.stroke();
</script>
</body>
</html>
結果
終了
要約
上記は、この記事のすべての内容であり、私はあなたの勉強や仕事のためのこの記事の内容は、特定の参照学習価値を持って願って、あなたが交換するメッセージを残すことができる質問がある場合は、スクリプトハウスのあなたのサポートをありがとうございました。
関連
-
キャンバス版体内時計の実装例
-
html2canvasのスクリーンショットが空白になる問題の解決法
-
Html5 video タグ 動画のベストプラクティス
-
HTML5レイアウトとHTML5タグの説明
-
ウォーターフォール型レイアウトを実現する3つの方法 まとめ
-
ダブルキャッシュを使用したCanvas clearRectによるスプラッシュスクリーンの問題を解決しました。
-
異なるiosデバイスでのh5ページの詳細 問題点まとめ
-
h5 web透かしSDKの実装コード例
-
キャンバスに丸みを帯びたアバターを描く方法
-
もしかしたら、これらがあなたの欲しいH5ソフトキーボード対応ソリューションかもしれません(要約)。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
html5フォームにおけるrequired属性の使用について
-
html5 モバイル 長押し禁止 画像保存 実装
-
HTMLとCSSを使ったタグクラウド効果(デモあり)
-
html5 applet fly into the shopping cart (放物線描画モーショントラック・ポイント)
-
AmazeUIのJSフォーム検証フレームワークの動作を公開
-
H5 オフラインストレージ マニフェストの原理と使い方
-
リフレッシュせずにURLを変更するHTML5メソッド
-
HTML表示 pdf, word, xls, ppt方式例
-
HD画面でのキャンバスサイズリセットによる不具合の解消について
-
キャンバスで画像を圧縮し、カードを作成する例