小程序
小游戏
企业微信
微信支付
扫描小程序码分享
微信8.0.16拖动时图片会闪烁
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
楼主是说 图片拖拽 ?
因为你拖拽时需要频繁setData,性能本身就不是很好。因此官方出了一个 wxs响应事件 弥补这类情况下无法预估的效果。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
图片本身尺寸很大吗
原来是拖动图片本身啊……建议要么用movable-view做,要么用wxs处理事件
微信里什么地方要用到拖动图片?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
楼主是说 图片拖拽 ?
因为你拖拽时需要频繁setData,性能本身就不是很好。因此官方出了一个 wxs响应事件 弥补这类情况下无法预估的效果。
图片本身尺寸很大吗
let pen = e.currentTarget.dataset.pen;
//console.log('move '+pen)
var endPoint = e.touches[e.touches.length - 1]//获取拖动结束点
//计算在X轴上拖动的距离和在Y轴上拖动的距离
var translateX = endPoint.clientX - this.data.startPoint.clientX
var translateY = endPoint.clientY - this.data.startPoint.clientY
this.data.startPoint = endPoint//重置开始位置
var buttonTop = this.data.top1 + translateY
var buttonLeft = this.data.left1 + translateX
if(pen==2){
buttonTop = this.data.top2 + translateY
buttonLeft = this.data.left2 + translateX
}
else if(pen==3){
buttonTop = this.data.top3 + translateY
buttonLeft = this.data.left3 + translateX
}
else if(pen==4){
buttonTop = this.data.top4 + translateY
buttonLeft = this.data.left4 + translateX
}
//判断是移动否超出屏幕
if (buttonLeft+50 >= this.data.windowWidth){
buttonLeft = this.data.windowWidth-50;
}
if (buttonLeft<=0){
buttonLeft=0;
}
if (buttonTop<=0){
buttonTop=0
}
if (buttonTop + 50 >= this.data.windowHeight){
buttonTop = this.data.windowHeight-50;
}
let top = 'top'+pen;
let left = 'left'+pen;
console.log('move '+pen+' top='+buttonTop+' left='+buttonLeft)
this.setData({
[top]: buttonTop,
[left]: buttonLeft
})
},
buttonEnd: function (e) {
let pen = e.currentTarget.dataset.pen;
let top = 'top'+pen;
let left = 'left'+pen;
let topok = 'top'+pen+'ok';
let leftok = 'left'+pen+'ok';
let redirectTo = 'redirectTo'+pen;
let buttonTop = 0;
let buttonLeft = 0;
let buttonTopOK = 0;
let buttonLeftOK = 0;
let offset = 40;
buttonTop = this.data[top];
buttonLeft = this.data[left];
buttonTopOK = this.data[topok];
buttonLeftOK = this.data[leftok];
console.log('end '+pen+' top='+buttonTop+' left='+buttonLeft)
原来是拖动图片本身啊……建议要么用movable-view做,要么用wxs处理事件
微信里什么地方要用到拖动图片?