我試圖讓一個球跟隨鼠標在畫布區域內。但是當鼠標進入畫布區域時(即邊緣),球只能獲得第一個位置。讓「球」跟隨畫布上的鼠標
由於在畫布內移動時球沒有跟隨鼠標,所以出了什麼問題?
\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>