zoukankan      html  css  js  c++  java
  • 百度地图H5应用区分点击和滑动事件

    在调用百度地图API做开发的时候,有时需要在地图上添加点击事件,点击地图上某一点触发某个动作。

    在web端,点击事件用map.addEventListener("click,function(e){})绑定即可。

    但如果是H5项目,你会发现在手机上百度地图的click事件是不灵敏的,这是因为百度地图网页版在PC端和手机端有不同的处理,手机端屏蔽了click事件,默认拖动事件。所以我们在做手机端的项目的时候不应使用map.addEventListener("click,function(e){}),而应使用map.addEventListener("touchstart",function(e){}触摸事件。

    但这样的话就又有一个问题,也许我们只是想滑动一下地图,并不想触发点击地图上某一点触发的事件,但只要我们的手指触碰到屏幕,事件就会被触发。

    如何区分点击事件和滑动事件,使得在滑动手机屏幕的时候不触发点击事件呢?

    我的解决办法是,在触发滑动事件的时候(touchmove)记录开始和结尾的横纵坐标,在手指抬起的时候(touchend)根据横纵坐标计算滑动平移的距离,如果距离不为0,说明是滑动事件,不触发动作,如果等于0,说明是点击事件,触发动作。

    上代码:

     
     

    作者:罂粟1995
    链接:https://www.jianshu.com/p/153cd2471576
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    如何使用wei-ui框架,wei-ui框架有哪些组件
    微信小程序tabbar如何配置
    如何使用promise封装wx.request()、
    微信有哪些小程序内置组件,目录结构
    uni-app生命周期
    vue任意关系组件通信与跨组件监听状态 vue-communication
    vue父子组件状态同步的最佳方式续章(v-model篇)
    webstorm中emmet展开a标签和行内元素不换行的解决办法
    深入理解 vue 中 scoped 样式作用域的规则
    javascript事件环微任务和宏任务队列原理
  • 原文地址:https://www.cnblogs.com/jisi2012/p/15619155.html
Copyright © 2011-2022 走看看