我試圖拖延圖形繪製時,但我想我遇到了setTimeout
的問題。任何幫助或建議將不勝感激。HTML5的畫布JavaScript的延遲問題
<canvas id="myCanvas"></canvas>
<script type="text/javascript">
function vertix(y,ctx){
ctx.moveTo(0, y);
ctx.lineTo(500, y);
}
function horizons(x,ctx){
ctx.moveTo(x, 0);
ctx.lineTo(x, 375);
}
var canvas=document.getElementById('myCanvas');
var ctx=canvas.getContext('2d');
var context=ctx;
var i;
ctx.fillStyle='#FF0000';
canvas.setAttribute('align', 'center');
canvas.setAttribute('width', '800px');
canvas.setAttribute('height', '800px'); // clears the canvas
for (var x = 0.5; x < 500; x += 10) {
setTimeout("horizons(x,ctx)",1000,'JavaScript');
}
for (var y = 0.5; y < 375; y += 10) {
setTimeout("vertix(y,ctx)",1000,'JavaScript');
}
ctx.strokeStyle = "#eee";
ctx.stroke();
ctx.beginPath();
ctx.moveTo(0, 40);
ctx.lineTo(240, 40);
ctx.moveTo(260, 40);
ctx.lineTo(500, 40);
ctx.moveTo(495, 35);
ctx.lineTo(500, 40);
ctx.lineTo(495, 45);
ctx.moveTo(60, 0);
ctx.lineTo(60, 153);
ctx.moveTo(60, 173);
ctx.lineTo(60, 375);
ctx.moveTo(65, 370);
ctx.lineTo(60, 375);
ctx.lineTo(55, 370);
ctx.strokeStyle = "#000";
ctx.stroke();
context.font = "bold 12px sans-serif";
context.fillText("x", 248, 43);
context.fillText("y", 58, 165);
context.font = "bold 12px sans-serif";
context.fillText("x", 248, 43);
context.fillText("y", 58, 165);
context.textBaseline = "top";
context.fillText("(0 , 0)", 8, 5);
context.textAlign = "right";
context.textBaseline = "bottom";
context.fillText("(500 , 375)", 492, 370);
context.fillRect(0, 0, 3, 3);
context.fillRect(497, 372, 3, 3);
context.font = " 'TangerineRegular'";
context.fillText("Graph", 500, 400);
</script>
利用全球範圍內的變量直接從功能的程度不把它傳遞給參數的做法,也儘量的setTimeout這樣的:* * setTimeout(「horizons(」+ x +「)」,1000,'JavaScript')** –