Wat ik wil is heel eenvoudig dacht ik, maar het werkt niet goed.
Ik wil een klik-sleep-los-functionaliteit maken in een webbrowser. Op een gewone pc ontvang ik netjes de events in de volgorde mousedown-mousemove-mouseup-click. Met de onderstaande code krijg ik dan ook netjes de codes 2-4-6-11 te zien.
Maar op een tablet (Android 4.0 met default browser) werkt het totaal niet. Ik ontvang de events touchstart-touchmove, maar nooit een touchend of eventueel een mouseup -event.
Als ik niet sleep, dus gewoon het scherm aanraak en dan los, werkt het wel en ontvang ik de events touchstart-touchend-click.
Waarom ontvang ik bij het slepen de touchmove-event niet?
Ik wil een klik-sleep-los-functionaliteit maken in een webbrowser. Op een gewone pc ontvang ik netjes de events in de volgorde mousedown-mousemove-mouseup-click. Met de onderstaande code krijg ik dan ook netjes de codes 2-4-6-11 te zien.
Maar op een tablet (Android 4.0 met default browser) werkt het totaal niet. Ik ontvang de events touchstart-touchmove, maar nooit een touchend of eventueel een mouseup -event.
Als ik niet sleep, dus gewoon het scherm aanraak en dan los, werkt het wel en ontvang ik de events touchstart-touchend-click.
Waarom ontvang ik bij het slepen de touchmove-event niet?
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script> function LoadPage() { hisObject = document.body; ThisObject.addEventListener('touchstart', function(e){CheckEvent(e,1);},true); // Tablet ThisObject.addEventListener('mousedown', function(e){CheckEvent(e,2);},true); // PC ThisObject.addEventListener('touchmove', function(e){CheckEvent(e,3);},true); // Tablet ThisObject.addEventListener('mousemove', function(e){CheckEvent(e,4);},true); // Tablet + PC ThisObject.addEventListener('touchend', function(e){CheckEvent(e,5);},true); // Tablet ThisObject.addEventListener('mouseup', function(e){CheckEvent(e,6);},true); // PC ThisObject.addEventListener('mouseover', function(e){CheckEvent(e,7);},true); // PC ThisObject.addEventListener('mouseenter', function(e){CheckEvent(e,8);},true); // PC ThisObject.addEventListener('mouseout', function(e){CheckEvent(e,8);},true); // PC ThisObject.addEventListener('mouseleave', function(e){CheckEvent(e,9);},true); // PC ThisObject.addEventListener('blur', function(e){CheckEvent(e,10);},true); // PC ThisObject.addEventListener('click', function(e){CheckEvent(e,11);},true); // PC } function CheckEvent(aEvent, aAction) { document.getElementById("Debug").innerHTML = aEvent.clientX + " " + aEvent.clientY + " " + aAction; } </script> <style type="text/css"> html, body { height: 100%; margin: 0px; background-color: #FC99FF; } </style> </head> <body onload="LoadPage()"> <div id="Debug"></div> </body> </html> |
Speel ook Balls Connect en Repeat