移动端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的新特性介绍
Oct 31 HTML / CSS
CSS3实现超慢速移动动画效果非常流畅无卡顿
Jun 15 HTML / CSS
一款纯css3实现的响应式导航
Oct 31 HTML / CSS
CSS实现定位元素居中的方法
Jun 23 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
Jun 09 HTML / CSS
canvas之万花筒效果的简单实现(推荐)
Aug 16 HTML / CSS
HTML5的结构和语义(2):结构
Oct 17 HTML / CSS
HTML5单页面手势滑屏切换原理
Mar 21 HTML / CSS
Html5实现文件异步上传功能
May 19 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
Nov 14 HTML / CSS
Html5页面中的返回实现的方法
Feb 26 HTML / CSS
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
May 25 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完整的日历类(CLASS)
2006/11/27 PHP
请php正则走开
2008/03/15 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
遭遇php的in_array低性能问题
2013/09/17 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
js实现股票实时刷新数据案例
2017/05/14 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
python-itchat 获取微信群用户信息的实例
2019/02/21 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
数学备课组工作总结
2015/08/12 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书