公司开发微信小程序,pm想实现如下需求:
用手指缩放图片。其实在实现这个需求以前,并不知道,微信公众号以及微信小程序里面有一个原生的api就自带这个特效,而且微信朋友圈也是用的这个api。wx.previewImage,就是它。预览图片。除了不能预览开发环境的本地电脑的图片外,你手机真机的图片,以及http服务器上的图片都是可以预览的,而且缩放功能做得很流畅。下面就说说如何用js来实现这个功能吧。
先上源码,然后在逐步剖析:
= 2) {
newScale = 2
}
if(newScale <= 0.6) {
newScale = 0.6
}
let scaleWidth = newScale * touch.baseWidth
let scaleHeight = newScale * touch.baseHeight
// 赋值 新的 => 旧的
this.setData({
'touch.distance': distance,'touch.scale': newScale,'touch.scaleWidth': scaleWidth,'touch.scaleHeight': scaleHeight,'touch.diff': distanceDiff
})
},bindload: function(e) {
// bindload 这个api是组件的api类似的onload属性
this.setData({
'touch.baseWidth': e.detail.width,'touch.baseHeight': e.detail.height,'touch.scaleWidth': e.detail.width,'touch.scaleHeight': e.detail.height
})
}
})
wxml文件对应如下,就不做解释了: