私はこのキャンバスアニメーションを持っており、ボタンをクリックすると停止します。そのため、私はrequestAnimationFrame(drawCircle)
というIDを持つ関数cancelRAF()
を呼び出す必要があります。ボタンをクリックしてキャンバスアニメーションを停止する
var mainCanvas \t \t = document.getElementById("myCanvas");
var mainContext \t = mainCanvas.getContext('2d');
var canvasWidth \t = mainCanvas.width;
var canvasHeight \t = mainCanvas.height;
var angle = 0;
var cancelRAF = window.cancelAnimationFrame||
window.webkitCancelAnimationFrame|| \t \t \t \t \t \t \t window.mozCancelAnimationFrame||
window.msCancelAnimationFrame;
var requestAnimationFrame = window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.msRequestAnimationFrame;
function drawCircle()
{
mainContext.clearRect(0, 0, canvasWidth, canvasHeight);
// color in the background
mainContext.fillStyle = "grey";
mainContext.fillRect(0, 0, canvasWidth, canvasHeight);
// draw the circle
mainContext.beginPath();
var radius = 25 + 150 * Math.abs(Math.cos(angle));
mainContext.arc(225, 225, radius, 0, Math.PI * 2, false);
mainContext.closePath();
// color in the circle
mainContext.fillStyle = "red";
mainContext.fill();
angle += Math.PI/64;
var id = requestAnimationFrame(drawCircle);
return id;
}
var id = drawCircle();
function stop_animation()
{
cancelRAF(id);
}
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>HTML5 Canvas Example</title>
<meta charset="UTF-8">
<meta name="description" content="Free Web tutorials">
<meta name="keywords" content="HTML,JavaScript">
<meta name="author" content="WebCodeGeeks.com">
<style>
canvas {
\t border: 3px #CCC solid;
}
</style>
</head>
<body>
<div id="container">
<canvas id="myCanvas" height="450" width="450"></canvas>
</div>
\t
\t <input type="button" value="STOP" onclick="stop_animation()">
<!-- SCRIPT IS LOCATED HERE -->
</body>
</html>
私はこのようにそれを試してみましたが、これは動作しません。
ニースソリューション、非常に役立ちます – Black