全网整合营销服务商

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

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

touch.js 拖动、缩放、旋转 (鼠标手势)功能代码

可以实现手势操作:拖动、缩放、旋转。封装好的脚本方法是这样的:

var cat = window.cat || {}; 
cat.touchjs = { 
  left: 0, 
  top: 0, 
  scaleVal: 1,  //缩放 
  rotateVal: 0,  //旋转 
  curStatus: 0,  //记录当前手势的状态, 0:拖动, 1:缩放, 2:旋转 
  //初始化 
  init: function ($targetObj, callback) { 
    touch.on($targetObj, 'touchstart', function (ev) { 
      cat.touchjs.curStatus = 0; 
      ev.preventDefault();//阻止默认事件 
    }); 
    if (!window.localStorage.cat_touchjs_data) 
      callback(0, 0, 1, 0); 
    else { 
      var jsonObj = JSON.parse(window.localStorage.cat_touchjs_data); 
      cat.touchjs.left = parseFloat(jsonObj.left), cat.touchjs.top = parseFloat(jsonObj.top), cat.touchjs.scaleVal = parseFloat(jsonObj.scale), cat.touchjs.rotateVal = parseFloat(jsonObj.rotate); 
      callback(cat.touchjs.left, cat.touchjs.top, cat.touchjs.scaleVal, cat.touchjs.rotateVal); 
    } 
  }, 
  //拖动 
  drag: function ($targetObj, callback) { 
    touch.on($targetObj, 'drag', function (ev) { 
      $targetObj.css("left", cat.touchjs.left + ev.x).css("top", cat.touchjs.top + ev.y); 
    }); 
    touch.on($targetObj, 'dragend', function (ev) { 
      cat.touchjs.left = cat.touchjs.left + ev.x; 
      cat.touchjs.top = cat.touchjs.top + ev.y; 
      callback(cat.touchjs.left, cat.touchjs.top); 
    }); 
  }, 
  //缩放 
  scale: function ($targetObj, callback) { 
    var initialScale = cat.touchjs.scaleVal || 1; 
    var currentScale; 
    touch.on($targetObj, 'pinch', function (ev) { 
      if (cat.touchjs.curStatus == 2) { 
        return; 
      } 
      cat.touchjs.curStatus = 1; 
      currentScale = ev.scale - 1; 
      currentScale = initialScale + currentScale; 
      cat.touchjs.scaleVal = currentScale; 
      var transformStyle = 'scale(' + cat.touchjs.scaleVal + ') rotate(' + cat.touchjs.rotateVal + 'deg)'; 
      $targetObj.css("transform", transformStyle).css("-webkit-transform", transformStyle); 
      callback(cat.touchjs.scaleVal); 
    }); 
    touch.on($targetObj, 'pinchend', function (ev) { 
      if (cat.touchjs.curStatus == 2) { 
        return; 
      } 
      initialScale = currentScale; 
      cat.touchjs.scaleVal = currentScale; 
      callback(cat.touchjs.scaleVal); 
    }); 
  }, 
  //旋转 
  rotate: function ($targetObj, callback) { 
    var angle = cat.touchjs.rotateVal || 0; 
    touch.on($targetObj, 'rotate', function (ev) { 
      if (cat.touchjs.curStatus == 1) { 
        return; 
      } 
      cat.touchjs.curStatus = 2; 
      var totalAngle = angle + ev.rotation; 
      if (ev.fingerStatus === 'end') { 
        angle = angle + ev.rotation; 
      } 
      cat.touchjs.rotateVal = totalAngle; 
      var transformStyle = 'scale(' + cat.touchjs.scaleVal + ') rotate(' + cat.touchjs.rotateVal + 'deg)'; 
      $targetObj.css("transform", transformStyle).css("-webkit-transform", transformStyle); 
      $targetObj.attr('data-rotate', cat.touchjs.rotateVal); 
      callback(cat.touchjs.rotateVal); 
    }); 
  } 
}; 

html代码:

<div style="position:relative;width: 100%;height: 250px;overflow: hidden;border: 1px dashed #ff0000;"> 
 <img id="targetObj" style="position:relative;transform-origin:center" src="http://demo.somethingwhat.com/images/flower1.jpg" /> 
</div>

 js调用:

var $targetObj = $('#targetObj'); 
//初始化设置 
cat.touchjs.init($targetObj, function (left, top, scale, rotate) {}; 
//初始化拖动手势(不需要就注释掉) 
cat.touchjs.drag($targetObj, function (left, top) { }); 
//初始化缩放手势(不需要就注释掉) 
cat.touchjs.scale($targetObj, function (scale) { }); 
//初始化旋转手势(不需要就注释掉) 
cat.touchjs.rotate($targetObj, function (rotate) { }); 

以上所述是小编给大家介绍的touch.js 拖动、缩放、旋转 (鼠标手势)功能代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# touch.js  # 手势拖动  # 旋转  # 手势缩放  # js实现图片旋转 js滚动鼠标中间对图片放大缩小  # 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转  # 图片旋转、鼠标滚轮缩放、镜像、切换图片js代码  # js根据鼠标移动速度背景图片自动旋转的方法  # JavaScript实现环绕鼠标旋转效果  # 拖动  # 不需要  # 小编  # 鼠标  # 在此  # 是这样  # 给大家  # 可以实现  # 所述  # 给我留言  # 感谢大家  # 装好  # 疑问请  # 有任何  # jsonObj  # cat_touchjs_data  # parse  # JSON  # localStorage  # touchstart 


相关文章: 建站之星伪静态规则如何正确配置?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  高防服务器租用如何选择配置与防御等级?  如何快速查询网站的真实建站时间?  jQuery 常见小例汇总  建站之星北京办公室:智能建站系统与小程序生成方案解析  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  建站之星价格显示格式升级,你的预算足够吗?  C#如何使用XPathNavigator高效查询XML  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  建站之星如何一键生成手机站?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  如何快速完成中国万网建站详细流程?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  h5网站制作工具有哪些,h5页面制作工具有哪些?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  盘锦网站制作公司,盘锦大洼有多少5G网站?  c++ stringstream用法详解_c++字符串与数字转换利器  网站专业制作公司有哪些,做一个公司网站要多少钱?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  如何在西部数码注册域名并快速搭建网站?  常州自助建站工具推荐:低成本搭建与模板选择技巧  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  如何用IIS7快速搭建并优化网站站点?  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何通过西部建站助手安装IIS服务器?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  微信小程序 五星评分(包括半颗星评分)实例代码  教学网站制作软件,学习*后期制作的网站有哪些?  如何注册花生壳免费域名并搭建个人网站?  建站之星导航菜单设置与功能模块配置全攻略  如何通过IIS搭建网站并配置访问权限?  如何快速配置高效服务器建站软件?  如何高效搭建专业期货交易平台网站?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  建站主机空间推荐 高性价比配置与快速部署方案解析  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  电商网站制作价格怎么算,网上拍卖流程以及规则?  如何在阿里云通过域名搭建网站?  如何打造高效商业网站?建站目的决定转化率  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  Android使用GridView实现日历的简单功能  css网站制作参考文献有哪些,易聊怎么注册?  建站主机是否等同于虚拟主机?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  外贸公司网站制作哪家好,maersk船公司官网? 

您的项目需求

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