介绍
怎么在Html5中实现百度地图的点击事件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
根据百度地图官方解释,在移动端H5页面中可监听下面这4个事件:
touchstart, touchmove, touchend, longpress
而如果地图上监听了点击事件,在移动端是不会执行这个事件里面的代码的。
我之前做一个需求时,给地图监听了touchend事件,不曾想当我拖动地图时,也执行了touchend里的代码,所以需要模拟一个像zepto中的丝锥事件,就能解决这个问题了。
我的代码是:
function initMap (baseData), { ,,,var mp =, new BMap.Map(& # 39;地图# 39;); ,,,var point =, new BMap.Point ( ,,,,,baseData.data.gardenLongitude, ,,,,baseData.data.gardenLatitude ,,,); ,,,mp.centerAndZoom(点,15); ,,,//,保存,touch 对象信息 ,,,var obj =, {}; ,,,mp.addEventListener (& # 39; touchstart& # 39;,, 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 (& # 39; touchend& # 39;,, function (e), { ,,,,,obj.e =, e.changedTouches ?, e.changedTouches [0],:, e; ,,,,,if ( ,,,,,,,obj.target ===, e.target ,, ,,,,,,, ,,,,,,,//,大于,750,可看成长按了 ,,,,,,,((Date.now(),安康;obj.time), & lt;, 750),,, ,,,,,,, ,,,,,,,//,应用勾股定理判断,如果,touchstart 的点到,touchend 的点小于,15日就可当成地图被点击了 ,,,,,,,(Math.sqrt (Math.pow (obj.X 安康;obj.e.pageX,, 2), +, Math.pow (obj.Y 安康;obj.e.pageY,, 2)), & lt;, 15) ,,,,,),{ ,,,,,,,//,地图被点击了,执行一些操作 ,,,,,,,doSomething (); ,,,,,} ,,,}); 以前,,}>关于怎么在Html5中实现百度地图的点击事件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。
怎么在Html5中实现百度地图的点击事件