我想提供非常有限的可能性,在html画布,在任何设备上。当用户交互时,只能发生三件事:一个“单元”(例如,它可能是40 be,或者10,它不是很重要)方方出现在没有任何位置,一个矩形在“单击”时消失,最后,几个矩形被融合。
前两个需要点击来检测(相同的向下和向上坐标),后者需要一个拖动来检测(不同的向下和向上坐标)。
因此,应用程序唯一需要做的就是检测(并记住)下来,然后向上坐标,无论是触摸,点击,或任何东西。
最后,我不希望使用jquery或任何lib,而是从我的代码中学到一些东西。
为了这个目的,这段代码看起来可以吗?你能提议改进吗?
canvas.ontouchstart = canvas.onmousedown = onDown;
function onDown(e) {
saveDownCoords(e);
e.preventDefault();
};
canvas.ontouchend = canvas.onmouseup = onUp;
function onUp(e) {
...do whatever;
};第二个问题,关于preventDefault()、stopPropagation() (或者其他什么):我读过它是为了阻止事件两次注册,比如触碰和点击--但是在哪种情况下和设备,准确地说,触摸事件然后单击events来触发一个独特的用户物理操作呢?
发布于 2018-05-22 12:30:07
对于第一个问题,最好使用element.addEventListener():https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
canvas.addEventListener("mouseup", function(event) {
event.preventDefault(); // If you need to
// ... Do whatever
}至于第二个问题,event.preventDefault()调用是用来停止默认行为的。例如,它可以用来防止双击选择文本。
https://stackoverflow.com/questions/50467512
复制相似问题