我目前正在制作一款游戏,要求玩家在触摸屏设备上拖动物体。
我已经使用了事件监听器mousemove
,它已经在我的英特尔XDK仿真器上运行,但现在我将它移动到触摸屏设备,我需要一个mousemove
的触摸事件和mousedown
,我不知道该怎么做。
理想代码示例:
canvas.addEventListener("mousemove" && "mousedown", function(e){
pointerX = e.pageX;
pointerY = e.pageY;
}
因此,当鼠标停止时,这个理想的代码会吐出x和y,并且它已经移动了。
如果有人知道合法的语法或不同的方法,那将是一个很大的帮助。
我不想将JQuery合并到这里,只是纯粹的JS。
谢谢! :)
编辑:让我重新说一下这一切都是直截了当的。当用户拖动一个对象时,我需要一个函数,将指针的x和y吐出整个拖动。
答案 0 :(得分:2)
每个MDN:
EventTarget.addEventListener()方法在其调用的EventTarget上注册指定的侦听器。事件目标可以是文档中的元素,文档本身,窗口或支持事件的任何其他对象(例如XMLHttpRequest)。
注意" eventTarget"以上。 AddEventListener方法只接受一个表示EventType的字符串。您需要编写自定义函数才能迭代多个事件:
const target = document.getElementById("myDiv");
['mousedown', 'mousemove'].forEach(eventType => {
target.addEventListener(eventType, (event) => {
target.innerText = `x: ${event.pageX} y: ${event.pageY}`;
});
});

#myDiv {
width: 100px;
height: 100px;
background-color: orange;
color: white;
}

<div id="myDiv"></div>
&#13;
答案 1 :(得分:1)
对于触摸设备,您应该关注touchstart
,touchend
,touchcancel
和touchmove
。
触摸事件类似于鼠标事件,除了它们支持同时触摸和触摸表面上的不同位置。
https://developer.mozilla.org/en-US/docs/Web/API/Touch_events`
答案 2 :(得分:1)