【发布时间】:2021-12-16 17:30:03
【问题描述】:
我正在编写一个作业,我必须将画布内的一个圆圈拖到奶酪图像上,然后将另一个鼠标图像更改为正在庆祝的老鼠。我尝试添加一个mousemove 事件侦听器来检测圆上的鼠标指针,并添加一个if 语句来查看鼠标指针的X/Y 值是否大于X/Y 值。
我想使用requestAnimationFrame 来执行此操作。
canvas.addEventListener("mousemove", setMousePosition, false);
function setMousePosition(e)
{
mouseX = e.clientX - canvasPos.x;
mouseY = e.clientY - canvasPos.y;
}
function update()
{
context.clearRect(0,0,canvas.width, canvas.height);
drawText();
loadCheese();
loadMouse();
drawLine();
context.beginPath();
var x = context.arc(mouseX,mouseY,40,0,2*Math.PI, true);
context.fillStyle = "#FF6A6A";
context.fill();
context.stroke();
requestAnimationFrame(update);
}
这是我的基本代码,它基本上使圆圈跟随我的光标。事件处理程序更正相对于我的浏览器的鼠标坐标。 update() 绘制所有必要的元素。
【问题讨论】:
-
现在您需要一个事件处理程序。这里有很好的答案stackoverflow.com/questions/28284754/…
-
谢谢。它确实有一些很好的答案,但我如何让它检测圆圈是否在图像、空间等上方?在我拖拽的时候会不会只是一些
if currentXpos <>= x?
标签: javascript canvas dom-events drag