问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js 手机屏上两根手指放大缩小图片(类似app图片放大缩小效果)

发布网友 发布时间:2022-04-23 03:40

我来回答

2个回答

懂视网 时间:2022-04-23 08:01

 var reqAnimationFrame = (function() {
 return window[Hammer.prefixed(window, 'requestAnimationFrame')] || function(callback) {
  window.setTimeout(callback, 1000 / 60);
 };
 })();
 var el = $('img');
 var ticking = false;
 var transform;
 var initScale = 1;
 var _eImg = '';
 for (var m = 0; m < el.length; m++) {
 var mc = new Hammer.Manager(el[m]);
 mc.add(new Hammer.Pan({
  threshold: 0,
  pointers: 0
 }));
 mc.add(new Hammer.Swipe()).recognizeWith(mc.get('pan'));
 mc.add(new Hammer.Pinch({
  threshold: 0
 })).recognizeWith(mc.get('pan'));
 mc.on('panstart panmove', onPan);
 mc.on('pinchstart pinchmove', onPinch);
 mc.on('swipe', onSwipe);
 }
 
 function resetElement() {
 el.addClass('animate');
 transform = {
  translate: {
  x: 0,
  y: 0
  },
  scale: 1,
  angle: 0,
  rx: 0,
  ry: 0,
  rz: 0
 };
 requestElementUpdate();
 }
 
 function updateElementTransform() {
 var value = ['translate3d(' + transform.translate.x + 'px, ' + transform.translate.y + 'px, 0)', 'scale(' + transform.scale + ', ' + transform.scale + ')', 'rotate3d(' + transform.rx + ',' + transform.ry + ',' + transform.rz + ',' + transform.angle + 'deg)'];
 value = value.join(' ');
 if (_eImg != '') {
  _eImg.style.webkitTransform = value;
  _eImg.style.mozTransform = value;
  _eImg.style.transform = value;
  //_eImg.css({ 'transform': value }, { '-webkit-transform': value });
 }
 ticking = false;
 }
 
 function requestElementUpdate() {
 if (!ticking) {
  reqAnimationFrame(updateElementTransform);
  ticking = true;
 }
 }
 
 function onPan(ev) {
 el.removeClass('animate');
 transform.translate = {
  x: ev.deltaX,
  y: ev.deltaY
 };
 }
 
 function onPinch(ev) {
 if (ev.type == 'pinchstart') {
  initScale = transform.scale || 1;
 }
 el.removeClass('animate');
 transform.scale = initScale * ev.scale;
 requestElementUpdate();
 _eImg = ev.target;
 return _eImg;
 }
 
 function onSwipe(ev) {
 var angle = 10;
 transform.ry = (ev.direction & Hammer.DIRECTION_HORIZONTAL) ? 1 : 0;
 transform.rx = (ev.direction & Hammer.DIRECTION_VERTICAL) ? 1 : 0;
 transform.angle = (ev.direction & (Hammer.DIRECTION_RIGHT | Hammer.DIRECTION_UP)) ? angle : -angle;
 requestElementUpdate();
 _eImg = ev.target;
 return _eImg;
 }
 resetElement();

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

Node.js文件系统操作

es6解构有哪些方法

热心网友 时间:2022-04-23 05:09

百度有个touch.js,支持各种手势,包括缩放pinch事件,pinchin是缩小,pinchout是放大。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如果银行拒贷有哪些办法 小天鹅滚筒洗衣机水位多少合适 阴阳师百闻牌攻略大全 百闻牌式神卡组阵容大全 阴阳师百闻牌三大妖狐阵容推荐 妖狐流派怎么搭配?-新手攻略-安族网... 阴阳师百闻牌妖狐快攻阵容 怎么搭配攻略推荐 阴阳师百闻牌妖狐技能攻略 妖狐属性及卡组搭配推荐-新手攻略-安族网... 阴阳师百闻牌妖狐最强卡组 阵容怎么搭配攻略 阴阳师百闻牌妖狐卡组推荐 怎么搭配攻略分享 带鹏字的公司名字大全 鹏字开头公司起名 叶罗丽娃娃玩具店在哪 今日大型强子对撞机实验,耗资500亿美元,由5000多来自世界各地的科学家!可能产生宇宙黑洞.吞噬地球? 员工借款公司借条还款后需要退还吗? 买打印机要签合同么? 电脑显卡松动不用螺丝刀可以插好吗? 淘宝在哪里找卖家中心 组态王软件如何采集一般传感器的数据??一般用什么数据采集器? 淘宝的玩赚淘宝在哪里 改成什么比较有意义情侣的 有什么适合情侣的格式? 跪求条码解决方案,数据采集器&#47;盘点机&#47;条码扫描器&#47;扫描*等各种设备相关的条码解决方案,各行各业的都可以 跪求情侣合适的 关于条码数据采集器 数据采集器是怎么实现仓库盘点管理? 我家开宾馆,风水师要起一个带土的名字,也可以带土字旁的,一定要好。 姜姓女孩名2012年农历09月18日20:30分生,请大侠们给起个名字。。谢谢 有土字旁的棋牌名字 姜姓女孩五行缺金取什么名字好 我知道单元门密码,但是怎么开?星号和井号键干嘛用??? 店铺名字,养心阁和养馨阁,请问用哪个名字好听? 本人想看家饭店,麻烦给小弟点建议起个名字,带土字旁的和日字旁的或火字旁的 贵阳哪里可以学跳舞? “天下没有白费的努力,成功不必在我,而功力必不唐。”是什么意思? 贵阳白云哪里可以学跳舞? 尘埃粒子计数器哪家品牌好 天下没有白费的努力作文 贵阳市区专教儿童舞蹈的学校在哪 请问贵阳哪里可以学跳舞 作文《天下没有白费的努力》 贵阳欢乐世界附近有学跳舞的吗? 有什么的速度比光速还快? 作文《天下没有白费的努力》一千字左右 自己在打印机里打出来的合同有效吗 防护用品车间用什么品牌粒子计数器? 各位好:请问贵阳清镇那里有学舞蹈的地方 我们部门总是打印合同,以前的打印机旧了,老有问题,要换台新的,有推荐么 天下没有白费的努力好词好句? 新买的hp2025dn保修一年。刚用5%的粉就出现50.2错误,后来维修说是定影器问题。 贵阳那里有学跳舞,拉丁,交际 有么有人知道·南京房地产综合业务网·打印机显示执行出错:object error 打不了合同·怎搞啊 ··急死了 不追求没可能?天底下没有白费的午餐?可我不想向女生乞讨唉&#128532;(女士请回答)