移动端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 :nth-child()伪类选择器实现奇偶行显示不同样式
Nov 05 HTML / CSS
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
Feb 10 HTML / CSS
html5+css3之CSS中的布局与Header的实现
Nov 21 HTML / CSS
CSS3哪些新特性值得称赞
Mar 02 HTML / CSS
详解Canvas事件绑定
Jun 27 HTML / CSS
Canvas与Image互相转换示例代码
Aug 09 HTML / CSS
html5实现微信打飞机游戏
Mar 27 HTML / CSS
浅谈HTML5中dialog元素尝鲜
Oct 15 HTML / CSS
浅谈Html5页面打开app的一些思考
Mar 30 HTML / CSS
recorder.js 基于Html5录音功能的实现
May 26 HTML / CSS
Html分层的box-shadow效果的示例代码
Mar 30 HTML / CSS
用position:sticky完美解决小程序吸顶问题的实现方法
Apr 24 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对二维数组按指定键值key排序示例代码
2013/11/26 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
php实现word转html的方法
2016/01/22 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
一些不错的js函数ajax
2008/08/20 Javascript
JavaScript 数组运用实现代码
2010/04/13 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
jQuery实现美观的多级动画效果菜单代码
2015/09/06 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
详解Python中dict与set的使用
2015/08/10 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
python tornado微信开发入门代码
2018/08/24 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
《草虫的村落》教学反思
2014/02/16 职场文书
搞笑车尾标语
2014/06/23 职场文书
运动员获奖感言
2014/08/15 职场文书
给上级领导的感谢信
2015/01/22 职场文书
毕业论文致谢范文
2015/05/14 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技