캔버스를 사용하여 가벼운 진행률 표시 줄을 만들려고합니다. 이 프로젝트의 목표는 주어진 변수에서 N %까지 진행률 막대를 채우는 것입니다. 이 데모에서는 수동으로 50 % 채우기를 설정했습니다.캔버스 진행 사각형 2 색
두 가지 색상이 있습니다. 빨간색은로드 될 때 채워지고 녹색은 진행 완료를 나타냅니다.
녹색 채우기의 진행을 어떻게 애니메이트 할 수 있습니까? 게시 된
var canvas = document.getElementById('myProgress');
var myPerc = 500;
ctx = canvas.getContext('2d');
ctx.fillStyle = "rgb(255, 0, 0)"; //red
ctx.fillRect(0,0,myPerc,100);
ctx.save();
for (var i=0;i<(myPerc*0.5);i++)
{
ctx.fillStyle = "rgb(0, 255, 0)"; //green
setTimeout(function() {
ctx.fillRect(0,0,+i,100);
}, 1000);
}
감사합니다. 답변을 수락했습니다. 이것에 대해 자세히 설명해 주시겠습니까? (function (i) { setTimeout (function() { ctx.fillRect (0,0, + i, 100); }, 1000 * i), }) (i); –
위 클로저에서 제공 한 링크는 꽤 좋은 설명이 있습니다. 이것은 특히 근본적인 문제를 설명하는 좋은 일을한다고 생각합니다 : http://stackoverflow.com/a/750560/717383 익명 함수 대신 명명 된 함수를 사용하면 읽는 것이 더 쉬울 수도 있습니다 : http://jsfiddle.net/ZpRm7/10/ 원래 코드에서'setTimeout'을 실행할 때마다 SAME'i'에 대한 참조가있었습니다. sort of 함수는'setTimeout'이 호출되었을 때와 같은 값을 가진 각각의'i'를 제공합니다. –