javascript を使用してキャンバスに svg を描画する際に問題が発生しました。これを機能させたい... HTML
<canvas class="buttonCanvas" id="handCanvas" height="60px" width="60px" />
Javascript
function drawHandCanvas(){
var canvas = document.getElementById('handCanvas');
var ctx = canvas.getContext('2d');
var img= document.createElement('img');
img.src='images/handCursor.svg';
img.width = 60; img.height = 60;
ctx.drawImage(img,0,0);
}
drawHandCanvas();
しかし、そうではありません。
SVG 要素を追加すると、これを機能させることができます。HTML
<canvas class="buttonCanvas" id="handCanvas" height="60px" width="60px" />
<img id="handSVG" src="images/handCursor.svg"/>
Javascript
function drawHandCanvas(){
var canvas = document.getElementById('handCanvas');
var ctx = canvas.getContext('2d');
var img=document.getElementById('handSVG');
img.width = 60; img.height = 60;
setTimeout(function(){
ctx.drawImage(img,0,0);
img.hidden='true';
}, 10);
}
drawHandCanvas();
この 2 番目の方法では、 setTimeout メソッドを使用して動作させ、下の行の最後に img 要素を追加する必要があることに注意してください。これは、キャンバスに描画した後に非表示にします。スーパーハッキー!setTimeout の代わりに window.onload を使用しただけでは機能しません。img は非表示になりますが、drawImage() は何もしません。おそらく、ウィンドウの読み込みが既に完了しているときにキャンバスの準備ができていないためです。何かご意見は?