(...)即使浏览器支持触摸,浏览器仍然必须模拟鼠标事件,这样假设只有鼠标输入的内容才能正常工作,而无需直接修改。
在我的应用程序中,touchstart事件触发mousedown事件。但是,touchmove事件并不会触发mousemove事件(我刚刚在mousemove函数的开头添加了一个alert,它从未被调用)。
我的代码的相关行是:
<html onmousemove='mouseMove(event)' onmouseup='mouseUp(event)'>
<canvas onmousedown='cnvMouseDown(event)'></canvas>mouseMove和mouseUp函数位于html元素上,因此即使光标在画布之外移动,它们也能工作。这个mouseMove不应该被html的touchmove事件自动捕获吗?为什么不呢?
发布于 2020-06-17 05:26:09
MDI-“即使浏览器支持触摸,浏览器仍然必须模拟鼠标事件,这样假设只有鼠标输入的内容才能正常工作,而无需直接修改”。
这意味着,如果有支持触摸的浏览器,那么浏览器也必须并建议该浏览器模拟鼠标事件,这样如果有任何与鼠标事件相关的场景,这些场景就可以工作,而不必显式地处理它们。
对于mousemove和touchmove,它们是不一样的。
“特别是,触摸事件总是针对开始触摸的元素,而鼠标事件则针对当前鼠标光标下的元素。这就是为什么我们有鼠标切换和鼠标退出事件,但是没有相应的触屏和触屏事件--只有触屏。”
希望这能有所帮助
https://stackoverflow.com/questions/62421264
复制相似问题