移动端Html5中百度地图的点击事件


Posted in HTML / CSS onJanuary 31, 2019

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

touchstart, touchmove, touchend, longpress

移动端Html5中百度地图的点击事件

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

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

我的代码是:

function initMap(baseData) {
    var mp = new BMap.Map('map');
    var point = new BMap.Point(
      baseData.data.gardenLongitude,
      baseData.data.gardenLatitude
    );

    mp.centerAndZoom(point, 15);

    // 保存 touch 对象信息
    var obj = {};

    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();
      }
    });
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
css3学习心得分享
Aug 19 HTML / CSS
css3使网页、图片变成灰色兼容大多数浏览器
Jul 02 HTML / CSS
css3设置box-pack和box-align让div里面的元素垂直居中
Sep 01 HTML / CSS
详解使用canvas保存网页为pdf文件支持跨域
Nov 23 HTML / CSS
HTML5标签与HTML4标签的区别示例介绍
Jul 18 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
Aug 02 HTML / CSS
HTML5语音识别标签写法附图
Nov 18 HTML / CSS
HTML5 history新特性pushState、replaceState及两者的区别
Dec 26 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
Oct 22 HTML / CSS
小程序canvas中文字设置居中锚点
Apr 16 HTML / CSS
关于canvas.toDataURL 在iOS运行失败的问题解决
Sep 16 HTML / CSS
CSS实现多个元素在盒子内两端对齐效果
Mar 30 HTML / CSS
Html5页面内使用JSON动画的实现
Jan 29 #HTML / CSS
HTML5拍照和摄像机功能实战详解
Jan 24 #HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
Jan 24 #HTML / CSS
详解canvas绘制多张图的排列顺序问题
Jan 21 #HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
Jan 18 #HTML / CSS
canvas绘制圆角头像的实现方法
Jan 17 #HTML / CSS
HTML5如何使用SVG的方法示例
Jan 11 #HTML / CSS
You might like
需要发散思维学习PHP
2009/06/29 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
Yii框架登录流程分析
2014/12/03 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
JQuery与iframe交互实现代码
2009/12/24 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
js分页代码分享
2014/04/28 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
JavaScript实现的简单拖拽效果
2015/06/01 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
详解vue-router 初始化时做了什么
2018/06/11 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
深入浅析Python中的迭代器
2019/06/04 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
毕业生的自我评价
2013/12/30 职场文书
师范教师毕业鉴定
2014/01/13 职场文书
市政施工员自我鉴定
2014/01/15 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
2015年双拥工作总结
2015/04/08 职场文书
债务纠纷起诉书
2015/05/20 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android