900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 微信小程序中实现手指缩放图片的示例代码

微信小程序中实现手指缩放图片的示例代码

时间:2021-07-09 15:28:27

相关推荐

微信小程序中实现手指缩放图片的示例代码

web前端|js教程

小程序,图片,缩放

web前端-js教程

本篇文章主要介绍了微信小程序中实现手指缩放图片的示例代码,现在分享给大家,也给大家做个参考。

分销外卖系统源码,Ubuntu不能打开蓝牙,tomcat5配置数据源,爬虫 火车票,php应用开发第二版,seo一哥lzw

公司开发微信小程序,pm想实现如下需求:

精仿站酷zcool素材网源码,vscode跳转失效,ubuntu 6410,服务没有tomcat,SQLite 中日期比较,destoon插件,流行的前端框架,东阳哪里有爬虫店铺,php 21天,整站seo优化收费,下载网站上的php文件夹,网页素材?D,蓝色后台登录界面织梦dedecms模板lzw

用手指缩放图片。其实在实现这个需求以前,并不知道,微信公众号以及微信小程序里面有一个原生的api就自带这个特效,而且微信朋友圈也是用的这个api。wx.previewImage,就是它。预览图片。除了不能预览开发环境的本地电脑的图片外,你手机真机的图片,以及http服务器上的图片都是可以预览的,而且缩放功能做得很流畅。下面就说说如何用js来实现这个功能吧。

hyip 源码,vscode输出终端,ubuntu贴吧,java的tomcat,ios 操作sqlite,青海网页设计,帝国cms 数据库结构,直接机房服务器免费售后,js 备注 插件,最火的前端框架,爬虫uva,php 伪静态,seo成都,springboot去除上下文,aspcms判断样式标签,欧美化妆品网站模板下载,网页色彩四种功能,微信商城前端模板下载,php网站后台页面,淘宝评价页面代码,mysql 用户管理系统,wpf 钩子程序lzw

先上源码,然后在逐步剖析:

Page({ data: { touch: {distance: 0,scale: 1,baseWidth: null,baseHeight: null,scaleWidth: null,scaleHeight: null } }, touchstartCallback: function(e) { // 单手指缩放开始,也不做任何处理 if(e.touches.length == 1) return console.log(双手指触发开始) // 注意touchstartCallback 真正代码的开始 // 一开始我并没有这个回调函数,会出现缩小的时候有瞬间被放大过程的bug // 当两根手指放上去的时候,就将distance 初始化。 let xMove = e.touches[1].clientX - e.touches[0].clientX; let yMove = e.touches[1].clientY - e.touches[0].clientY; let distance = Math.sqrt(xMove * xMove + yMove * yMove); this.setData({ ouch.distance: distance, }) }, touchmoveCallback: function(e) { let touch = this.data.touch // 单手指缩放我们不做任何操作 if(e.touches.length == 1) return console.log(双手指运动) let xMove = e.touches[1].clientX - e.touches[0].clientX; let yMove = e.touches[1].clientY - e.touches[0].clientY; // 新的 ditance let distance = Math.sqrt(xMove * xMove + yMove * yMove); let distanceDiff = distance - touch.distance; let newScale = touch.scale + 0.005 * distanceDiff // 为了防止缩放得太大,所以scale需要限制,同理最小值也是 if(newScale >= 2) {newScale = 2 } if(newScale 旧的 this.setData({ ouch.distance: distance, ouch.scale: newScale, ouch.scaleWidth: scaleWidth, ouch.scaleHeight: scaleHeight, ouch.diff: distanceDiff }) }, bindload: function(e) { // bindload 这个api是组件的api类似的onload属性 this.setData({ ouch.baseWidth: e.detail.width, ouch.baseHeight: e.detail.height, ouch.scaleWidth: e.detail.width, ouch.scaleHeight: e.detail.height }) }})

wxml文件对应如下,就不做解释了:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

Vue项目中如何引入icon图标

JavaScript中的E-mail 地址格式验证

javascript性能优化之分时函数的介绍

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。