ボタンをクリックすると表示されるキャンバスhtml要素があります。キャンバス再起動ボタンクリック
私が抱えている問題は、キャンバス内のアニメーションが約1秒間だけ続くことです。だから、ボタンをクリックしてCSSプロパティをdisplay:none
からdisplay:inline
に変更すると、アニメーションはすでにバックグラウンドでロードされていたので終了しました。
私がしたいのは、ボタンをクリックしてキャンバスアニメーションを再起動するだけです。私はそれがバックグラウンドでロードされていることを心配していない、私はちょうどボタンのクリックで再起動したい。
これは、キャンバスやボタンのHTMLです:
<canvas class="canvas2" id="canvas2"></canvas>
<script src="canvas.js"></script>
<div class="buttons">
<button class="two">Canvas 2</button>
</div>
これはキャンバスのための私のjavascriptです。アニメーションは、単純に左から右に正方形のバウンスです:
var canvas = document.getElementById('canvas2');
var c2 = canvas.getContext('2d');
c2.fillStyle = "black";
c2.fillRect(0,0,canvas.width,canvas.height);
var posX = 20;
posY = canvas.height/2;
vx = 8,
vy = -10;
gravity = 1;
setInterval(function(){
c2.fillStyle = "black";
c2.fillRect(0,0,canvas.width,canvas.height);
posX += vx;
posY += vy;
if (posY > 120){
vy *= -0.5;
vx *= 0.5;
posY = 120;
}
vy += gravity;
c2.fillStyle = "red";
c2.fillRect(posX, posY, 10, 10);
}, 30);
});
そして、これは簡単なjQueryのcanvas要素を表示するために使用されます。
$('.two').click(function() {
$('.canvas2').show();
});
私は様々な機能を実行しようとしてきたが、私はできませんクラスtwo
のボタンをクリックするとキャンバスのアニメーションが再開されるようです。
誰でも手助けできますか?
あなたはインターバルそれをキャンセルされることはありませんので、実際には止めるべきではない、それはあなたの大きな関心事になるはずです。 – Kaiido