收藏
回答

ios中map组件不可拖拽?

在ios中map组件外层元素添加了@touchmove.stop不可拖拽事件,导致map组件也不可缩放。如何解决这个问题,在安卓手机上正常

回答关注问题邀请回答
收藏

2 个回答

  • Demons
    Demons
    01-29

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    01-29
    有用
    回复 2
    • Nobody
      Nobody
      01-29
      我这边是使用uniapp的,我需要如何操作才可以给你提供代码片段
      01-29
      回复
    • Nobody
      Nobody
      01-29
      这段代码使用uniapp编译出来,在ios和安卓有差异。这是需要uniapp的人员解答吗?还是询问微信开发平台的人员?
      01-29
      回复
  • 一般般
    一般般
    01-29

    1.如果您正在使用的是类似 Vue.js 或者 uni-app 这样的框架,并且使用了 @touchmove.stop.prevent 修饰符来阻止滚动,可以尝试只对不需要拖拽的特定区域应用这个事件监听器,而不是全局应用于包含地图的父容器

    2.对于某些场景下,比如微信小程序中的 movable-view 组件包裹 map 组件的情况,可以通过 CSS 设置来解决,就像之前提到的知识库信息那样,为 movable-view 添加 pointer-events: auto; 来确保其不会阻止子元素的触摸事件。


    3.在事件处理函数内部检查触发事件的目标元素,如果是地图组件,则不阻止默认行为,如

       document.querySelector('.parent-container').addEventListener('touchmove', function(event) {
           if (!event.target.closest('.map-class')) { // 判断触点是否在地图组件内
               event.preventDefault(); // 非地图区域则阻止默认滚动
           }
       });
    
    01-29
    有用
    回复
登录 后发表内容