移动端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 相关文章推荐
纯CSS实现预加载动画效果
Sep 06 HTML / CSS
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
Dec 31 HTML / CSS
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
Sep 02 HTML / CSS
纯HTML5+CSS3制作图片旋转
Jan 12 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
Jun 09 HTML / CSS
CSS3制作缩略图的详细过程
Jul 08 HTML / CSS
CSS3实现内凹圆角的实例代码
May 04 HTML / CSS
详解Html5中video标签那些属性和方法
Jul 01 HTML / CSS
html5时钟实现代码
Oct 22 HTML / CSS
html5 web本地存储将取代我们的cookie
Dec 26 HTML / CSS
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
Feb 28 HTML / CSS
css3实现背景图片半透明内容不透明的方法示例
Apr 13 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中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
JS 自动完成 AutoComplete(Ajax 查询)
2009/07/07 Javascript
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
深入浅析Nodejs的Http模块
2017/06/20 NodeJs
JS判断非空至少输入两个字符的简单实现方法
2017/06/23 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
[03:03]DOTA2 2017国际邀请赛开幕战队入场仪式
2017/08/09 DOTA
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
Python matplotlib实时画图案例
2020/04/23 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
python切割图片的示例
2020/11/12 Python
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
HQhair美国/加拿大:英国化妆品、美容及美发产品商城
2019/04/15 全球购物
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
党校毕业个人总结
2015/02/28 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
《战锤40K:暗潮》跳票至9月 公布新宣传片
2022/04/03 其他游戏