既存のキャンバスの中にキャンバスを置くことはできますか?できれば、html5でやってください。html5キャンバスのキャンバス
答えて
質問を解釈する方法は2つあります。
<canvas id="outer">
<canvas id="inner"></canvas>
</canvas>
これは法的(validator.nuによる)が、無意味である:一つは、あなたが実際に巣このようなcanvas
要素自体を、に意味ということです。 canvas
要素内のコンテンツはフォールバック用です。 canvas
要素内のコンテンツが使用される唯一の方法は、ブラウザがcanvas
をサポートしていない場合です。この場合、内部のcanvas
要素は表示されません。
質問を解釈するもう1つの方法は、別のキャンバスに表示された画像を別のキャンバスに表示することです。これは非常に簡単で、context.drawImage()
の最初のパラメータとしてcanvas
要素を使用できます。あなたは2つのcanvas
の要素がある場合:
<canvas id="c1" width="200" height="200"></canvas>
<canvas id="c2" width="200" height="200"></canvas>
を次にthis script (using jQuery)は最初canvas
上に描画した後、第2 canvas
への画像の4倍という追加します。
var c1 = $('#c1');
var ctx1 = c1[0].getContext('2d');
ctx1.fillRect(50,50,100,100);
var c2 = $('#c2');
var ctx2 = c2[0].getContext('2d');
ctx2.drawImage(c1[0],0,0,100,100);
ctx2.drawImage(c1[0],100,0,100,100);
ctx2.drawImage(c1[0],0,100,100,100);
ctx2.drawImage(c1[0],100,100,100,100);
しかし、再び、なぜでしょうか?あなたはjust using one上述した第2 canvas
の画像を複製することができます。
var c1 = $('#c1');
var ctx1 = c1[0].getContext('2d');
ctx1.fillRect(25,25,50,50);
ctx1.fillRect(125,25,50,50);
ctx1.fillRect(25,125,50,50);
ctx1.fillRect(125,125,50,50);
だから、要約すると:はい、それは可能だが、それは簡単な使用には本当に必要はありません。
2番目のキャンバスを使用する理由は(ほとんど認められませんが)ほとんどありません。たとえば、グラフを別のオフスクリーンキャンバスにコピーし、メインキャンバスを消去して、オフスクリーンキャンバスを1ピクセル分左にオフセットしてコピーし、欠落した列に新しいデータを描画することで、移動グラフを描画するのが最も簡単です。 (これは、グラフの背景が透明である場合にのみ必要です。) – Phrogz
@Phrogzはい、さまざまな画像処理も可能です。しかし、私は "私は本当に単純な使い方では必要ではない"と考えています。私はそのようなものはこの質問やこの答えには関係しないと思います。 – robertc
おそらくそうではありませんが、初心者はあなたの言い回しが過度であることを意味するかもしれません。何かを達成するためにしばしばもっときれいで最適な方法です。静的な要素(例えばゲーム)を持つキャンバスが変化している場合、この手法には大きなパフォーマンス上の利点があります。ビットマップ/ベクトルをキャンバスに一度描画してから、更新するときにメインのものに描画するだけです。しかし、良い答えです。 – MickMalone1983
キャンバスを別のキャンバスの内側にネストすることは絶対に無意味です。ブラウザがcanvas
をサポートしていない場合、ページにはcanvas
タグ内の内容しか表示されません。
<canvas id="background">fallbacks/polyfills go in here...</canvas> <canvas id="foreground">.. or here, but not other canvases.</canvas>
- 1. HTML5キャンバスのクロスオリジンデータ
- 2. MagentoのHTML5キャンバス
- 3. HTML5キャンバスのタイミング
- 4. (HTML5キャンバス/ Javascriptの)
- 5. HTML5キャンバスとその逆のキャンバス
- 6. HTML5キャンバスとbubble.js
- 7. HTML5キャンバス - 敵対
- 8. HTML5キャンバス、GUI
- 9. HTML5キャンバス、テキスト、JavaScript
- 10. HTML5キャンバス描画
- 11. HTML5キャンバス:ピクセル
- 12. Html5キャンバスJavascriptライブラリ?
- 13. HTML5キャンバス物理
- 14. HTML5キャンバス "リセット" fillStyle
- 15. html5キャンバスでカスタムスクロール
- 16. HTML5キャンバスの例スクリーンショット
- 17. HTML5キャンバスのAndroidピクセル
- 18. HTML5キャンバスから別のHTML5キャンバスにドラッグアンドドロップする方法
- 19. HTML5キャンバスと光源
- 20. HTML5キャンバス画像クリッピング
- 21. オーバーレイHTML5キャンバス画像
- 22. HTML5キャンバス:度記号
- 23. HTML5キャンバスと操作
- 24. HTML5グラフィックスSVG、キャンバス、CSS
- 25. html5キャンバスとemberjsビュー
- 26. キャンバスHTML5とjQuery、コンテンツ
- 27. HTML5の複数のキャンバス
- 28. html5キャンバスでのパスベースのアニメーション
- 29. キャンバスのないHTML5のgetImageData
- 30. HTML5キャンバスの変更履歴
は、あなたが実際に達成しようとしているものについての詳細を記入してください:だから、ちょうどrobertcが言ったことを行います。 – Phrogz