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
})
}
})
您好,请问解决了吗?
你好,麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
代码片段https://developers.weixin.qq.com/s/d1Z9BSmF7w72
具体要怎么操作呢?方便提供下复现视频么
下面显示的显示信息就是表示事件的响应,在canvas框内抬起手指,touchend触发。在canvas框外抬起手指,touchend不触发。仅仅针对是Android手机,测试手机是荣耀paly、小米8、红米note4。在苹果手机iPhone 6 测试,在canvas框内外抬起手指,结果都touchend触发。