这篇文章主要介绍“html5如何设置百度地图点击事件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“html5如何设置百度地图点击事件”文章能帮助大家解决问题。

根据百度地图官方解释,在移动端 H5 页面中可监听下面这 4 个事件:

touchstart, touchmove, touchend, longpress

而如果地图上监听了 click 事件,在移动端是不会执行这个事件里面的代码的。

我之前做一个需求时,给地图监听了 touchend 事件,不曾想当我拖动地图时,也执行了 touchend 里的代码。所以需要模拟一个像 zepto 中的 tap 事件,就能解决这个问题了。

我的代码是:

functioninitMap(baseData){varmp=newBMap.Map('map');varpoint=newBMap.Point(baseData.data.gardenLongitude,baseData.data.gardenLatitude);mp.centerAndZoom(point,15);//保存touch对象信息varobj={};mp.addEventListener('touchstart',function(e){obj.e=e.changedTouches?e.changedTouches[0]:e;obj.target=e.target;obj.time=Date.now();obj.X=obj.e.pageX;obj.Y=obj.e.pageY;});mp.addEventListener('touchend',function(e){obj.e=e.changedTouches?e.changedTouches[0]:e;if(obj.target===e.target&&//大于750可看成长按了((Date.now()-obj.time)<750)&&//应用勾股定理判断,如果touchstart的点到touchend的点小于15,就可当成地图被点击了(Math.sqrt(Math.pow(obj.X-obj.e.pageX,2)+Math.pow(obj.Y-obj.e.pageY,2))<15)){//地图被点击了,执行一些操作doSomething();}});}

关于“html5如何设置百度地图点击事件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。