【问题标题】:Second click on canvas is not being fired on mobile devices在移动设备上没有触发第二次点击画布
【发布时间】:2023-03-13 21:46:01
【问题描述】:

我有一个糖果迷之类的游戏,并用这四个听众交换物品

canvas.addEventListener('mousemove', onMouseMove);
canvas.addEventListener('mousedown', onMouseDown); // also tried pointerup and pointerdown
canvas.addEventListener('mouseup', onMouseUp);
canvas.addEventListener('mouseout', onMouseOut);

它在桌面上完美运行,但有时第二次单击(鼠标按下)(在第二个瓷砖上根本没有被触发)。我的意思是没有调用监听器函数。 我有

cursor: pointer

在我的 CSS 中,我不知道该怎么做。

注意:如果您下次单击画布上的某个位置,则会触发事件,就像在旧位置单击一样。 因此,如果我要更改瓷砖 x: 0, y: 0 和 x: 0, y: 1 的位置:

  1. 我选择第一个图块 (x: 0, y: 0)
  2. 我尝试选择第二个图块 (x:0, y:1)。事件未触发
  3. 如果我点击任何随机图块,这两个图块会以某种方式交换位置

请帮忙!谢谢!

【问题讨论】:

  • 尝试在移动设备上使用“touchstart”而不是“mousedown”?

标签: javascript css reactjs canvas


【解决方案1】:

将触摸事件Docs 与您现有的代码结合使用

canvas.addEventListener('touchmove', onMouseMove);
canvas.addEventListener('touchstart', onMouseDown);
canvas.addEventListener('touchend', onMouseUp);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
相关资源
最近更新 更多