小程序的拖拽、缩放和旋转手势功能怎么实现
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍"小程序的拖拽、缩放和旋转手势功能怎么实现",在日常操作中,相信很多人在小程序的拖拽、缩放和旋转手势功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年01月22日小程序的拖拽、缩放和旋转手势功能怎么实现
这篇文章主要介绍"小程序的拖拽、缩放和旋转手势功能怎么实现",在日常操作中,相信很多人在小程序的拖拽、缩放和旋转手势功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"小程序的拖拽、缩放和旋转手势功能怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
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安全错误
数据库的锁怎样保障安全
mc开服务器教程
服务器系统有什么用
清远做app的软件开发多少钱
软件开发组织机构图
sql本地数据库连接不上怎么办
网络安全建议作文素材
数据库的检索和查询的区别
查看服务器未挂载硬盘
华宁柑橘数据库
数据库最高支持qps
asp随机从数据库数据库
软件开发的四种模型
四月星空网络技术股票
nc600串口服务器驱动
网络安全产品比喻
联想服务器突然断电后
恒生面试软件开发
mc换服务器
软件开发的主修课程
宜昌专业的软件开发方案
手机显示连接不到服务器怎么处理
苏州会计软件开发技术合同
安庆网络安全考试scsa认证
网络安全体系架构
无线路由器又叫网络的什么服务器
黑色玫瑰服务器在哪
互联网 算科技创新吗
银月网络安全团队
java登录数据库验证
政府网络安全认证