栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

hammer.js实现图片手势放大效果

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

hammer.js实现图片手势放大效果

本文实例为大家分享了hammer.js实现图片手势放大效果的具体代码,供大家参考,具体内容如下

 //图片手势放大
      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();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/85452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号