我试图让一个球跟随鼠标在画布区域内。但是当鼠标进入画布区域时(即边缘),球只能获得第一个位置。让“球”跟随画布上的鼠标
由于在画布内移动时球没有跟随鼠标,所以出了什么问题?
\t \t \t window.onload = startup;
\t \t \t var ballX = 400;
\t \t \t var ballY = 400;
\t \t \t var mouseX = 0;
\t \t \t var mouseY = 0;
\t \t \t
\t \t \t function startup() {
\t \t \t \t document.getElementById("drawingArea").onmouseover = mouseMove;
\t \t \t \t setInterval("moveBall()",100);
\t \t \t
\t \t \t }
\t \t \t
\t \t \t function mouseMove(evt) {
\t \t \t \t mouseX = evt.clientX;
\t \t \t \t mouseY = evt.clientY;
\t \t \t }
\t \t \t
\t \t \t function moveBall() {
\t \t \t \t if (ballX > mouseX) {
\t \t \t \t \t ballX -= 5;
\t \t \t \t } else {
\t \t \t \t \t ballX += 5;
\t \t \t \t }
\t \t \t \t if (ballY > mouseY) {
\t \t \t \t \t ballY -= 5;
\t \t \t \t } else {
\t \t \t \t \t ballY += 5;
\t \t \t \t }
\t \t \t \t
\t \t \t \t var canvas = document.getElementById("drawingArea");
\t \t \t \t var ctx = canvas.getContext("2d");
\t \t \t \t
\t \t \t \t ctx.clearRect(0, 0, canvas.width, canvas.height);
\t \t \t \t
\t \t \t \t ctx.beginPath();
\t \t \t \t ctx.arc(ballX, ballY, 40, 0, 2* Math.PI);
\t \t \t \t ctx.fillStyle = "green";
\t \t \t \t ctx.fill();
\t \t \t \t ctx.lineWidth = 5;
\t \t \t \t ctx.strokeStyle = "red";
\t \t \t \t ctx.stroke();
\t \t \t }
#drawingArea
{
\t \t \t \t border-style: solid;
\t \t \t \t position: absolute;
\t \t \t \t top: 0;
\t \t \t \t left: 0;
}
<!doctype html>
<html>
\t <head>
\t \t <meta charset="UTF-8">
\t \t <title>Move Ball</title>
\t </head>
\t <body>
\t \t <canvas id="drawingArea" width="800" height="800" />
\t </body>
</html>