小程序的拖拽、缩放和旋转手势功能怎么实现
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要介绍"小程序的拖拽、缩放和旋转手势功能怎么实现",在日常操作中,相信很多人在小程序的拖拽、缩放和旋转手势功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年11月14日小程序的拖拽、缩放和旋转手势功能怎么实现
这篇文章主要介绍"小程序的拖拽、缩放和旋转手势功能怎么实现",在日常操作中,相信很多人在小程序的拖拽、缩放和旋转手势功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"小程序的拖拽、缩放和旋转手势功能怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

wxml部分:
{{msg}}
wxss部分:
page { width: 100%; height: 100%; background: #ffffff;}.touch-container { width: 100%; height: 100%; padding-top: 0.1px;}.msg { width: 100%; height: 60rpx; line-height: 60rpx; text-align: center; font-size: 30rpx; color: #666666;}.img { position: absolute; width: 690rpx; height: 300rpx; transform-origin: center center;}js部分:
var canOnePointMove = falsevar onePoint = { x: 0, y: 0}var twoPoint = { x1: 0, y1: 0, x2: 0, y2: 0}Page({ data: { msg: '', src: 'http://img01.taopic.com/150508/318763-15050PU9398.jpg', width: 0, height: 0, left: 375, top: 600, scale: 1, rotate: 0 }, // 关闭上拉加载 onReachBottom: function() { return }, bindload: function(e) { var that = this var width = e.detail.width var height = e.detail.height if (width > 750) { height = 750 * height / width width = 750 } if (height > 1200) { width = 1200 * width / height height = 1200 } that.setData({ width: width, height: height }) }, touchstart: function(e) { var that = this if (e.touches.length < 2) { canOnePointMove = true onePoint.x = e.touches[0].pageX * 2 onePoint.y = e.touches[0].pageY * 2 }else { twoPoint.x1 = e.touches[0].pageX * 2 twoPoint.y1 = e.touches[0].pageY * 2 twoPoint.x2 = e.touches[1].pageX * 2 twoPoint.y2 = e.touches[1].pageY * 2 } }, touchmove: function(e){ var that = this if (e.touches.length < 2 && canOnePointMove) { var onePointDiffX = e.touches[0].pageX * 2 - onePoint.x var onePointDiffY = e.touches[0].pageY * 2 - onePoint.y that.setData({ msg: '单点移动', left: that.data.left + onePointDiffX, top: that.data.top + onePointDiffY }) onePoint.x = e.touches[0].pageX * 2 onePoint.y = e.touches[0].pageY * 2 }else if (e.touches.length > 1) { var preTwoPoint = JSON.parse(JSON.stringify(twoPoint)) twoPoint.x1 = e.touches[0].pageX * 2 twoPoint.y1 = e.touches[0].pageY * 2 twoPoint.x2 = e.touches[1].pageX * 2 twoPoint.y2 = e.touches[1].pageY * 2 // 计算角度,旋转(优先) var perAngle = Math.atan((preTwoPoint.y1 - preTwoPoint.y2)/(preTwoPoint.x1 - preTwoPoint.x2))*180/Math.PI var curAngle = Math.atan((twoPoint.y1 - twoPoint.y2)/(twoPoint.x1 - twoPoint.x2))*180/Math.PI if (Math.abs(perAngle - curAngle) > 1) { that.setData({ msg: '旋转', rotate: that.data.rotate + (curAngle - perAngle) }) }else { // 计算距离,缩放 var preDistance = Math.sqrt(Math.pow((preTwoPoint.x1 - preTwoPoint.x2), 2) + Math.pow((preTwoPoint.y1 - preTwoPoint.y2), 2)) var curDistance = Math.sqrt(Math.pow((twoPoint.x1 - twoPoint.x2), 2) + Math.pow((twoPoint.y1 - twoPoint.y2), 2)) that.setData({ msg: '缩放', scale: that.data.scale + (curDistance - preDistance) * 0.005 }) } } }, touchend: function(e) { var that = this canOnePointMove = false }})json部分:
"navigationBarTitleText": "识别手势", "navigationBarTextStyle":"black", "navigationBarBackgroundColor": "#FFF", "disableScroll": true
到此,关于"小程序的拖拽、缩放和旋转手势功能怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
手势
功能
程序
部分
学习
更多
帮助
实用
接下来
文章
方法
理论
知识
篇文章
网站
角度
资料
跟着
问题
拉加
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
承接qt软件开发项目
数据库访问页格式
启动服务显示连接数据库失败
网络技术基础培训目的
中国网络技术未来发展趋势
我的世界服务器区块加载配置文件
数据库的根本
软件开发培训机构招生技巧
服务器运维是机房运维么
电脑的网络安全模式没有声音
数据库应满足的条件是
网络安全 董国华
微信json文件导入数据库
电信服务器采购没有华为
比较好的软件开发培训班
网络安全重点工作安排
数据库实体
hp服务器内存顺序
临沂叮咚网络技术有限公司
网络安全学生短视频
宽带网络技术包括局域网技术
服务器时长
米米的服务器如何当管理员
pubg更换服务器会有什么影响
架设服务器需要什么宽带
软件开发公司一般盈利多少
合肥氧格网络技术有限公司
怎样重启服务器
谢永江网络安全法
软件开发电脑是谁出