全网整合营销服务商

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

免费咨询热线: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 


相关文章: 广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  平台云上自主建站:模板化设计与智能工具打造高效网站  简历在线制作网站免费版,如何创建个人简历?  相册网站制作软件,图片上的网址怎么复制?  如何用PHP快速搭建高效网站?分步指南  企业网站制作公司网页,推荐几家专业的天津网站制作公司?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  网站制作软件有哪些,制图软件有哪些?  招贴海报怎么做,什么是海报招贴?  北京网站制作的公司有哪些,北京白云观官方网站?  制作证书网站有哪些,全国城建培训中心证书查询官网?  如何快速完成中国万网建站详细流程?  建站之星收费标准详解:套餐费用及年费价格表一览  建站之星代理如何获取技术支持?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  建站之星ASP如何实现CMS高效搭建与安全管理?  如何在IIS中新建站点并配置端口与物理路径?  广德云建站网站建设方案与建站流程优化指南  制作网站的模板软件,网站怎么建设?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  建站主机类型有哪些?如何正确选型  制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?  黑客如何利用漏洞与弱口令入侵网站服务器?  建站主机SSH密钥生成步骤及常见问题解答?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  为什么Go需要go mod文件_Go go mod文件作用说明  制作网站公司那家好,网络公司是做什么的?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  移民网站制作流程,怎么看加拿大移民官网?  如何在Ubuntu系统下快速搭建WordPress个人网站?  安云自助建站系统如何快速提升SEO排名?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何通过PHP快速构建高效问答网站功能?  php json中文编码为null的解决办法  5种Android数据存储方式汇总  成都响应式网站开发,dw怎么把手机适应页面变成网页?  如何在IIS中配置站点IP、端口及主机头?  利用JavaScript实现拖拽改变元素大小  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何快速搭建个人网站并优化SEO?  如何选择高效便捷的WAP商城建站系统?  如何快速搭建高效WAP手机网站吸引移动用户?  如何通过云梦建站系统实现SEO快速优化?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  C++中引用和指针有什么区别?(代码说明)  大连 网站制作,大连天途有线官网?  建站VPS选购需注意哪些关键参数?  开封网站制作公司,网络用语开封是什么意思?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  长沙做网站要多少钱,长沙国安网络怎么样? 

您的项目需求

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