移动端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 Backgrounds属性相关介绍
May 11 HTML / CSS
CSS3 选择器 属性选择器介绍
Jan 21 HTML / CSS
详解CSS3的box-shadow属性制作边框阴影效果的方法
May 10 HTML / CSS
纯CSS3制作的鼠标悬停时边框旋转
Jan 03 HTML / CSS
css3旋转木马_动力节点Java学院整理
Jul 12 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
May 09 HTML / CSS
html5绘制时钟动画
Dec 15 HTML / CSS
移动端html5 meta标签的神奇功效
Jan 06 HTML / CSS
h5调用摄像头的实现方法
Jun 01 HTML / CSS
HTML5 manifest离线缓存的示例代码
Aug 08 HTML / CSS
详解HTML5布局和HTML5标签
Oct 26 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
jquery 简单的进度条实现代码
2010/03/11 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
JS实现的数组去除重复数据算法小结
2017/11/17 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
python正则表达式re模块详细介绍
2014/05/29 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python实现飞机大战
2018/09/11 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
简单了解python关系(比较)运算符
2019/07/08 Python
Flask-WTF表单的使用方法
2019/07/12 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
怎样声明接口
2014/09/19 面试题
客户代表实习人员自我鉴定
2013/09/27 职场文书
女大学生毕业找工作的自我评价
2013/10/03 职场文书
远程研修随笔感言
2014/02/10 职场文书
迎元旦广播稿
2014/02/22 职场文书
通知格式
2015/04/27 职场文书
单位工作证明范本
2015/06/15 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android