Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ontouchmove只为第一个元素触发一次(不会触发其他元素的ontouchmove事件)_Javascript_Android_Events_Triggers_Touchmove - Fatal编程技术网

Javascript ontouchmove只为第一个元素触发一次(不会触发其他元素的ontouchmove事件)

Javascript ontouchmove只为第一个元素触发一次(不会触发其他元素的ontouchmove事件),javascript,android,events,triggers,touchmove,Javascript,Android,Events,Triggers,Touchmove,我正在使用Android来适应我的一个老JavaScript游戏,我想知道为什么我用手指按下的第一个元素会触发“touchmove”。按下该元素后,我移动手指(不释放),当我进入另一个元素时,新元素不会触发其“touchmove”事件 我制作了这个简单的示例进行测试(它不是我正在使用的实际代码,但它仍然具有相同的行为): 方框1 方框2 方框3 我在Android的默认浏览器(三星Galaxy S3)上尝试了这段代码。我开始用手指按“框1”(因为事件已执行,所以它变黑),然后在不松开手指的情

我正在使用Android来适应我的一个老JavaScript游戏,我想知道为什么我用手指按下的第一个元素会触发“touchmove”。按下该元素后,我移动手指(不释放),当我进入另一个元素时,新元素不会触发其“touchmove”事件

我制作了这个简单的示例进行测试(它不是我正在使用的实际代码,但它仍然具有相同的行为):


方框1
方框2
方框3
我在Android的默认浏览器(三星Galaxy S3)上尝试了这段代码。我开始用手指按“框1”(因为事件已执行,所以它变黑),然后在不松开手指的情况下,我继续移动它穿过“框2”和“框3”,但它们永远不会变黑,因为它们的事件从未触发

我所期望的是类似于桌面浏览器上的“mousemove”事件的行为。您可以在启用JavaScript的任何桌面浏览器上测试以下代码:

<html>
    <head>
    </head>
    <body>
        <div style="background-color:red; height:33%;" onmousemove="this.style.background='black';">Box 1</div>
        <div style="background-color:blue; height:33%;" onmousemove="this.style.background='black';">Box 2</div>
        <div style="background-color:orange; height:33%;" onmousemove="this.style.background='black';">Box 3</div>
    </body>
</html>

方框1
方框2
方框3
将鼠标移到元素上时,所有元素都变为黑色。当我使用ontouchmove时会发生什么

顺便说一下,我知道Android的bug需要使用“preventDefault()”。我试着在我的实际游戏代码中使用事件的默认方法,但它仍然是一样的

先谢谢你

干杯,

我想你是想要悬停之类的。如果我没记错的话,触碰移动触发器的x,y坐标在你触碰的地方,然后是你拖动后停止的地方。谢谢你的回答。但是onhover不存在,最近的一个是onmouseover,但它在Android上不起作用,我举了一些例子:(您可以为整个屏幕创建一个onTouchListener,通过大小矩形检查其位置,然后如果坐标位于矩形内,则设置对象的背景色。谢谢。我不想使用这种方式,但我最终会使用它,因为这似乎是一种独特的方式。
<html>
    <head>
    </head>
    <body>
        <div style="background-color:red; height:33%;" onmousemove="this.style.background='black';">Box 1</div>
        <div style="background-color:blue; height:33%;" onmousemove="this.style.background='black';">Box 2</div>
        <div style="background-color:orange; height:33%;" onmousemove="this.style.background='black';">Box 3</div>
    </body>
</html>