我用帆布画画倒计时了
工作代码:http://jsfiddle.net/ajFsx/
window.onload = function() {
canvas = document.getElementById('timer'),
seconds = document.getElementById('counter'),
ctx = canvas.getContext('2d'),
sec = 180,
countdown = sec;
ctx.lineWidth = 8;
ctx.strokeStyle = "#528f20";
var
startAngle = 0,
time = 0,
intv = setInterval(function(){
var endAngle = (Math.PI * time * 2 / sec);
ctx.arc(65, 35, 30, startAngle , endAngle, false);
startAngle = endAngle;
ctx.stroke();
countdown--;
if ( countdown > 60){
seconds.innerHTML = Math.floor(countdown/60);
seconds.innerHTML += ":" + countdown%60;
}
else{
seconds.innerHTML = countdown;
}
if (++time > sec,countdown == 0 ) { clearInterval(intv), $("#timer, #counter").remove(), $("#timers").prepend('<img id="theImg" src="#" />'); }
}, 10);
}?
Run Code Online (Sandbox Code Playgroud)
我的问题是以下如何让这张图更好看,所以没有像素?
我在jquery画布上搜索了很多,但我似乎无法找到我想要的地方.
默认情况下,Canvas绘图是消除锯齿的.
你总是画画以前的画面.
jsFiddle(证明).
你可以通过调用来轻松解决这个问题
ctx.clearRect(0, 0, 200, 200);
Run Code Online (Sandbox Code Playgroud)
这将清除左上角先前绘制的200px方块.