全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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();

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


# hammer.js图片手势放大  # hammer.js手势放大  # hammer.js图片放大  # javascript实现商品图片放大镜  # js实现点击图片在屏幕中间弹出放大效果  # JavaScript实现图片放大镜效果  # JavaScript实现多张图片放大镜效果示例【不限定图片尺寸  # rem单位】  # JavaScript实现图片的放大缩小及拖拽功能示例  # js实现图片局部放大效果详解  # js实现图片放大并跟随鼠标移动特效  # JS滚轮控制图片缩放大小和拖动的实例代码  # JS与CSS3实现图片响应鼠标移动放大效果示例  # JS实现图片放大镜插件详解  # js实现图片放大展示效果  # JavaScript实现图片放大预览效果  # 大家分享  # 具体内容  # 大家多多  # lt  # length  # add  # Manager  # mc  # false  # ticking  # transform  # _eImg  # initScale  # Pinch  # pan  # panstart  # onPan  # panmove  # threshold 


相关文章: 小型网站制作HTML,*游戏网站怎么搭建?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何选择网络建站服务器?高效建站必看指南  C++如何使用std::optional?(处理可选值)  如何快速生成橙子建站落地页链接?  网站制作服务平台,有什么网站可以发布本地服务信息?  ,制作一个手机app网站要多少钱?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  中山网站推广排名,中山信息港登录入口?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  javascript中对象的定义、使用以及对象和原型链操作小结  建站主机空间推荐 高性价比配置与快速部署方案解析  如何快速上传建站程序避免常见错误?  如何基于云服务器快速搭建网站及云盘系统?  *服务器网站为何频现安全漏洞?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  学校为何禁止电信移动建设网站?  股票网站制作软件,网上股票怎么开户?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  如何用PHP工具快速搭建高效网站?  如何制作网站标识牌,动态网站如何制作(教程)?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  小程序网站制作需要准备什么资料,如何制作小程序?  如何通过主机屋免费建站教程十分钟搭建网站?  如何在橙子建站中快速调整背景颜色?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  网站制作难吗安全吗,做一个网站需要多久时间?  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  代刷网站制作软件,别人代刷火车票靠谱吗?  专业商城网站制作公司有哪些,pi商城官网是哪个?  官网网站制作腾讯审核要多久,联想路由器newifi官网  在线制作视频的网站有哪些,电脑如何制作视频短片?  建站168自助建站系统:快速模板定制与SEO优化指南  建站之星伪静态规则如何设置?  如何通过FTP空间快速搭建安全高效网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  建站之星云端配置指南:模板选择与SEO优化一键生成  定制建站哪家更专业可靠?推荐榜单揭晓  广州美橙建站如何快速搭建多端合一网站?  如何快速搭建高效WAP手机网站吸引移动用户?  Swift中swift中的switch 语句  如何构建满足综合性能需求的优质建站方案?  山东网站制作公司有哪些,山东大源集团官网?  如何通过FTP服务器快速搭建网站?  如何彻底删除建站之星生成的Banner? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。