收藏
回答

canvas 父元素上touch无法捕捉到

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug canvas 微信iOS客户端 IOS 7.0.8, Andriod 7.0.7 2.9.0

安卓客户端 7.0.7 1521

微信客户端 7.0.8

canvas 父元素上touchstart touchmove touchend 事件无法被捕获到,

由于开发工具上基础库没有2.9.0的选项,所以选择的是2.8.3 实际发生基础库为2.9.0

业务场景为:拖动四个点,选中特定区域,然后进行截图操作。为了在拖动是更流畅,将TOUCH事件绑定在父元素上。

之前该场景一直使用正常,在今天2019-10-15日之后突然大量用户反馈四个点拖动时无反应。经过代码重现后发现在基础库为2.9.0的小程序中,canvas阻止事件冒泡,导致父元素无法捕获到touch事件。因此无法拖动四个点进行绘制



wxml

<view class="canvas-container" style="width:360px;height:660px" bindtouchstart="startEvent" bindtouchmove="moveEvent" bindtouchend="endEvent" >

    <canvas style="width: 360px; height: 360px;border: 1px solid red" canvas-id="firstCanvas"></canvas>

</view>


10.24 update---------------------

貌似2.9.0(2019.10.22 12:35)这个版本 事件冒泡又恢复了 并且canvas性能更好了 官方还会再次修改吗?


最后一次编辑于  2019-10-24
回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-10-15

    原生组件事件不能冒泡,请使用新的canvas接口https://developers.weixin.qq.com/community/develop/doc/00020a02c2c040114d19a398f5b001?blockType=1&jumpto=comment&commentid=000e601d59cf30efcb190abbe564

    2019-10-15
    赞同
    回复 2
    • Damon
      Damon
      2019-10-15
      新的canvas接口兼容性怎么样呢?还要照顾一下兼容性呀
      2019-10-15
      回复
    • Damon
      Damon
      2019-10-15回复Damon
      老版本的基础库有没有什么兼容性方案呢?
      2019-10-15
      回复
  • 彭学添
    彭学添
    2019-10-16

    昨天我几十个小程序全部瘫痪,现在可以了

    2019-10-16
    赞同
    回复
  • *
    *
    2019-10-15

    canvas 标签的 touchstart touchmove touchend 事件无法被捕获到

    2019-10-15
    赞同
    回复 5
    • Damon
      Damon
      2019-10-15
      canvas自身的touch事件是可以被捕获到的。这个在真机上试过,没问题
      2019-10-15
      回复
    • *
      *
      2019-10-15回复Damon
      确实可以,我写的方式不对,这三个事件不能通过 WXS 响应事件
      2019-10-15
      回复
    • Damon
      Damon
      2019-10-15
      😔 我的问题还没解决呀
      2019-10-15
      回复
    • *
      *
      2019-10-15回复*
      2019-10-15
      回复
    • Damon
      Damon
      2019-10-16
      这样性能上会有问题,操作和绘图都在canvas上进行,拖动卡顿很明显
      2019-10-16
      回复
登录 后发表内容
问题标签