我想在画布中为一段圆(45度)制作动画。但由于某些原因,它不会起作用。我在这里弄错了什么?
window.onload = function() {
(function() {
var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
window.requestAnimationFrame = requestAnimationFrame;
})();
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var startAngle = Math.PI * 1.5;
var endAngle = startAngle + 45 * (Math.PI / 180);
var percent = 0;
ctx.lineWidth = 10;
ctx.strokeStyle = '#ad2323';
function animate (cur){
ctx.beginPath();
ctx.arc(canvas.width / 2, canvas.height / 2, startAngle, endAngle * cur, false);
ctx.stroke();
ctx.closePath();
percent++;
requestAnimationFrame(function () {
animate(percent / 100)
});
}
};
答案 0 :(得分:0)
怎么样:
ctx.arc(canvas.width / 2, canvas.height / 2, startAngle, endAngle * percent, false);
不确定您是否正确使用requestAnimationFrame()
的参数。
答案 1 :(得分:0)
您的代码中有几个错误。该问题与requestAnimationFrame
无关。
endAngle
成为想要制作动画的三角形,即45度。您正在使用start + (end - start)*cur
而不是end*cur
的动画线性函数。percent
是否小于100。