2016-09-20 3 views
0

例私は、<canvas>を使用すると、常にHTMLに実際のキャンバス要素があることがわかります。例えば、私が描画したいと思っている要素<header>を既に持っているとします。キャンバスとして直接使用する方法はありますか?または、キャンバス要素を追加してヘッダーを塗りつぶす必要がありますか?任意の要素をキャンバスとして使用する方法はありますか?

+0

Nope。他のhtml要素にはhtml5キャンバスの機能がありません。実際のキャンバス要素をヘッダーの子として追加するだけです。 – markE

答えて

1

私は最初は懐疑的でしたが、ほぼを達成するための方法が1つあります。ウェブキットではcssとgetCSSCanvasContext()を使用しています。これにより、キャンバスを背景として表示できるので、キャンバスのようにコントロールすることができます。

例:

HTML

<header></header> 

CSS

header { background: -webkit-canvas(fooBar); } 

はJavaScript(文書準備/オンロード)

function fillCanvas(w, h) { 
    var ctx = document.getCSSCanvasContext('2d', 'fooBar', w, h); 

    // draw into canvas 
} 

完全な例と詳細はhereです。

希望すると便利です。

+0

興味深い選択肢のUpvoteでも、実際のキャンバス要素をCSSの下に配置するか、ヘッダー内にキャンバス要素を配置することもできます。 – markE

+0

クロム46からこれを除去した。 '-moz-element'はまだそれに依存していないかもしれませんが、https://bugs.chromium.org/p/chromium/issues/detail?id=475655を参照してください。あなたは 'canvas.toDataURL'とcss' URL( "url");を使って背景をレンダリングされたキャンバスに設定できますが、それは遅いです。 – Blindman67

関連する問題