Según la explicación oficial de Baidu Maps, los siguientes 4 eventos se pueden monitorear en la página móvil H5:
inicio táctil, movimiento táctil, finalización táctil, pulsación larga
Y si el evento de clic se monitorea en el mapa, el código de este evento no se ejecutará en el terminal móvil.
Cuando hice un requisito antes, supervisé el evento de toque del mapa. Nunca pensé que cuando arrastrara el mapa, el código en toque también se ejecutaría. Entonces necesitamos simular un evento tap como el de zepto para resolver este problema.
Mi código es:
función initMap(baseData) { var mp = nuevo BMap.Map('mapa'); var punto = nuevo BMap.Point( baseData.data.gardenLongitude, baseData.data.gardenLatitude mp.centerAndZoom(punto, 15); / Guardar información del objeto táctil var obj = {}; mp.addEventListener('touchstart', function (e) { obj.e = e.changedTouches? e.changedTouches[0] : e; obj.target = e.target; obj.time = fecha.now(); }); mp.addEventListener('touchend', función (e) { obj.e = e.changedTouches? e.changedTouches[0] : e; if (obj.target === e.target && // Si es mayor que 750, puedes ver el crecimiento presionando ((Date.now() - obj.time) < 750) && // Aplica el teorema de Pitágoras a juzgar, si el punto de inicio táctil alcanza Si los puntos finales son menos de 15, se puede considerar como el mapa en el que se hace clic (Math.sqrt(Math.pow(obj.X - obj.e.pageX, 2) + Math. pow(obj.Y - obj.e.pageY, 2)) < 15) ) { // Se hace clic en el mapa, realiza algunas operaciones doSomething();
Lo anterior es el contenido completo de este artículo. Espero que sea útil para el estudio de todos. También espero que todos apoyen VeVb Wulin Network.