博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
移动端单指拖 双值旋转缩放(改动版)
阅读量:4980 次
发布时间:2019-06-12

本文共 1843 字,大约阅读时间需要 6 分钟。

改动内容:改动了缩放或者扩大后元素溢出边框的BUG,获取了缩放或者扩大的区间值进行计算,详细区别能够看上一篇博客对照一下代码就知道了。

    
222

win.innerWidth:doc.documentElement.scrollWidth; h=doc.documentElement.scrollHeight<win.innerHeight?

win.innerHeight:doc.documentElement.scrollHeight, getx=getpos(pic).x, gety=getpos(pic).y; /** * *单指拖动 * @param {[type]} ev [description] * @return {[type]} [description] */ mc.on("panmove", function(ev) { var pan_mx=ev.deltaX+pan_ex, pan_my=ev.deltaY+pan_ey; //变大变小之后计算位移防止超过边框 if(pan_mx<0&&getx-Math.abs(pan_mx-pex3/2)<0){ pan_mx=-(getx-pex3/2); }else if(pan_mx>0&&(getx+(pan_mx-pex3/2)+pic.offsetWidth)>(w)){ pan_mx=w-pic.offsetWidth-getx-pex3/2; } if(pan_my<0&&gety-Math.abs(pan_my-pey3/2)<0){ pan_my=-(gety-pey3/2); }else if(pan_my>0&&gety+(pan_my-pey3/2)+pic.offsetHeight>(h)){ pan_my=h-pic.offsetHeight-gety-pey3/2; } //设置元素变形值 pic.style.webkitTransform="translate3d("+pan_mx+"px,"+pan_my+"px,0) scale3d("+pin_sl+","+pin_sl+",1) rotate3d(0,0,1,"+rota_ex+"deg)"; pic.style.webkitTransformOrigin=(pan_mx+100)+"px "+(pan_my+100)+"px;"; mc.on("panend", function(ev) { pan_ex=pan_mx; pan_ey=pan_my; }); ev.preventDefault(); }); //双指拉伸旋转 mc.on("pinchstart rotatestart", function(ev) { var pinch_sa=ev.scale; var rota_sx=ev.rotation; mc.on("pinchmove rotatemove", function(ev) { pin_ml=ev.scale-pinch_sa+pin_sl; rota_mx=ev.rotation-rota_sx+rota_ex; pic.style.webkitTransform="translate3d("+pan_ex+"px,"+pan_ey+"px,0) scale3d("+pin_ml+","+pin_ml+",1) rotate3d(0,0,1,"+rota_mx+"deg)"; mc.on("pinchend rotateend", function(ev) { pin_sl=pin_ml; rota_ex=rota_mx; //计算拉伸之后的区间值 if(ev.type=="rotateend"){ pex3=pin_ml*pic.offsetWidth-(pic.offsetWidth); pey3=pin_ml*pic.offsetHeight-(pic.offsetHeight); } }); ev.preventDefault(); }); ev.preventDefault(); }); })(window,document) </script> </html>

 

转载于:https://www.cnblogs.com/claireyuancy/p/7228950.html

你可能感兴趣的文章
mysql 匹配 findinset
查看>>
[python]做一个简单爬虫
查看>>
最长递增子序列
查看>>
Eclipse快捷键
查看>>
常用标签与表格
查看>>
SQL Server2008 学习笔记(三) 数据库管理
查看>>
ANDROID笔记:Button的简单使用
查看>>
如何为你的美术妹子做Unity的小工具(一)
查看>>
read()、readline()、readlines()区别
查看>>
PAT:1028. List Sorting (25) AC
查看>>
Runtime理解
查看>>
python在Android下的自动化测试用法
查看>>
Java数组(初学者必看)
查看>>
Arch Linux 硬盘引导-联网安装
查看>>
无法打开包括文件: “QWidgets”: No such file or directory
查看>>
iOS 封装AFNetworking请求数据
查看>>
20个非常有用的Java程序片段
查看>>
Android 3D 游戏学习笔记(5)-法向量及材质
查看>>
Python:GUI
查看>>
js完美拖拽封装及其案例
查看>>