收藏
回答

Android上canvas滑动到控件外,touchend不触发

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug canvas 客户端 7.0.4 2.6.6

 Android上canvas滑动到控件外,touchend不触发,iPhone上没有问题。


极容易复现


(xml代码)

<view class="container">


<canvas canvas-id="canvasId1" style="width:200prx;height:200prx;background:#222;" bindtouchstart='touch1' bindtouchmove='touch1'bindtouchend='touch1' bindtouchcancel='touch1'></canvas>


<canvas canvas-id="canvasId2" style="width:200prx;height:200prx;background:#f42;margin-top:30rpx" bindtouchstart='touch2'bindtouchmove='touch2' bindtouchend='touch2' bindtouchcancel='touch2'></canvas>

<view>{{msg}}</view>


</view>


(js代码)


Page({

data: {

msg:""

},

//事件处理函数

touch1: function(e) {

let msg = "canvas1:"+ e.type + " x:"+ parseInt(e.changedTouches[0].x) + " y:" +parseInt(e.changedTouches[0].y)

console.log(msg)

this.showMsg(msg)

},

touch2: function (e) {

let msg = "canvas2:" + e.type + " x:" + parseInt(e.changedTouches[0].x)+ " y:" + parseInt(e.changedTouches[0].y)

console.log(msg)

this.showMsg(msg)

},


showMsg:function(msg){

this.setData({

msg:msg

})

}

})


最后一次编辑于  04-24  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    04-24

    你好,麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    04-24
    赞同
    回复 3
    • 彭学添
      彭学添
      04-25

      代码片段https://developers.weixin.qq.com/s/d1Z9BSmF7w72

      04-25
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      04-25回复彭学添

      具体要怎么操作呢?方便提供下复现视频么

      04-25
      回复
    • 彭学添
      彭学添
      04-25回复社区技术运营专员-娇华


      下面显示的显示信息就是表示事件的响应,在canvas框内抬起手指,touchend触发。在canvas框外抬起手指,touchend不触发。仅仅针对是Android手机,测试手机是荣耀paly、小米8、红米note4。在苹果手机iPhone 6 测试,在canvas框内外抬起手指,结果都touchend触发。

      04-25
      1
      回复
  • sincere
    sincere
    07-25

    您好,请问解决了吗?


    07-25
    赞同
    回复 3
    • 彭学添
      彭学添
      07-30
      没有修复这个bug,但是在外面加一层view,取view的事件和X、Y坐标,可以避免这个情况
      07-30
      回复
    • Gean今儿
      Gean今儿
      08-20回复彭学添
      请教下,您的意思是给canvas加个view包起来,在这个view上绑定事件获取坐标吗?
      08-20
      回复
    • 彭学添
      彭学添
      08-20
      没错
      08-20
      回复