Javascript 如何使我的绘图在HTML5画布中移动?

Javascript 如何使我的绘图在HTML5画布中移动?,javascript,html,canvas,Javascript,Html,Canvas,我有一个HTML5画布和Javascript。我怎样才能让它像手臂和脚一样移动 我试着在谷歌上搜索一些教程,但失败了 附件是我的图片和代码: <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="canvascss.css"> </head> <body> <div> <canvas id=

我有一个HTML5画布和Javascript。我怎样才能让它像手臂和脚一样移动

我试着在谷歌上搜索一些教程,但失败了

附件是我的图片和代码:

<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" type="text/css" href="canvascss.css">
</head>

<body>
    <div>
    <canvas id="canvas" width="400px" height="300px" >
        Your browser does not support HTML5 Canvas element
    </canvas>
    </div>

    <script>
    var canvas = document.getElementById("canvas");
    if (canvas.getContext("2d")) { // Check HTML5 canvas support
    context = canvas.getContext("2d"); // get Canvas Context object

    context.beginPath();
    context.fillStyle = "black"; // #ffe4c4
    context.arc(200, 50, 30, 0, Math.PI * 2, true); // draw circle for head
    context.fill();

    context.beginPath();
    context.strokeStyle = "black"; // color
    context.lineWidth = 3;
    context.arc(200, 50, 20, 0, Math.PI, false); // draw semicircle for smiling
    context.stroke();

    // eyes
    context.beginPath();
    context.fillStyle = "black"; // color
    context.arc(190, 45, 3, 0, Math.PI * 2, true); // draw left eye
    context.fill();
    context.arc(210, 45, 3, 0, Math.PI * 2, true); // draw right eye
    context.fill();

    // body
    context.beginPath();
    context.moveTo(200, 80);
    context.lineTo(200, 180);
    context.strokeStyle = "black";
    context.stroke();

    // arms
    context.beginPath();
    context.strokeStyle = "black"; // blue
    context.moveTo(200, 80);
    context.lineTo(150, 130);
    context.moveTo(200, 80);
    context.lineTo(250, 130);
    context.stroke();

    // legs
    context.beginPath();
    context.strokeStyle = "black";
    context.moveTo(200, 180);
    context.lineTo(150, 280);
    context.moveTo(200, 180);
    context.lineTo(250, 280);
    context.stroke();
}

</script>

</body>
</html>

您的浏览器不支持HTML5画布元素
var canvas=document.getElementById(“canvas”);
if(canvas.getContext(“2d”){//检查HTML5画布支持
context=canvas.getContext(“2d”);//获取画布上下文对象
context.beginPath();
context.fillStyle=“黑色”/#ffe4c4
context.arc(200,50,30,0,Math.PI*2,true);//为头部绘制圆
context.fill();
context.beginPath();
context.strokeStyle=“黑色”;//颜色
context.lineWidth=3;
弧(200,50,20,0,Math.PI,false);//画半圆形表示微笑
stroke();
//眼睛
context.beginPath();
context.fillStyle=“black”;//颜色
context.arc(190,45,3,0,Math.PI*2,true);//画左眼
context.fill();
弧(210,45,3,0,Math.PI*2,true);//画右眼
context.fill();
//身体
context.beginPath();
上下文。moveTo(200,80);
lineTo(200180);
context.strokeStyle=“黑色”;
stroke();
//武器
context.beginPath();
context.strokeStyle=“黑色”;//蓝色
上下文。moveTo(200,80);
lineTo(150130);
上下文。moveTo(200,80);
lineTo(250130);
stroke();
//腿
context.beginPath();
context.strokeStyle=“黑色”;
上下文。moveTo(200180);
lineTo(150280);
上下文。moveTo(200180);
lineTo(250280);
stroke();
}
结果:

来自:

要使用HTML5画布创建动画,我们可以使用 requestAnimFrame shim,它使浏览器能够确定 动画的最佳FPS。对于每个动画帧,我们可以 更新画布上的元素,清除画布,重新绘制 画布,然后请求另一个动画帧

简言之,你的出发点如下:

requestAnimationFrame
您需要一个javascript函数来更改起始图像的各个方面,然后定期调用该javascript代码


setInterval
是谷歌的另一个关键词,你可以从中学习。

你可能想修改你的标题。你实际上并不是想让画布本身移动,而是让画布内部的东西移动。噢,谢谢@Eclecticist。现在将修改标题:)谢谢@Gamemorize!我可以制作一个按钮,当我单击“开始”时,它将开始移动,然后当我单击“停止”时,它将停止。当然,你需要你的动画功能才能在onclick事件中看到Yeheyy,再次感谢,你是天使!:)不客气。要帮助别人找到这个问题,请记住接受答案。有乐趣的动画@克里斯:“我可以做一个按钮,当我点击“开始”时,它将开始移动……”请尽量避免问这样的问题。这真的与你移动木棍的问题无关。如果需要,请问一个新问题。(这有助于网站使用问题/答案作为其他类似问题的标准答案)。