亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

touch.js 拖動、縮放、旋轉 (鼠標手勢)功能代碼

發布時間:2020-08-19 14:38:19 來源:腳本之家 閱讀:252 作者:孟然 欄目:web開發

可以實現手勢操作:拖動、縮放、旋轉。封裝好的腳本方法是這樣的:

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 > 
 <img id="targetObj"  src="https://cache.yisu.com/upload/information/20200622/114/77432.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 拖動、縮放、旋轉 (鼠標手勢)功能代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

栾川县| 宕昌县| 大城县| 井研县| 邵东县| 青田县| 浮山县| 景泰县| 广安市| 淮安市| 九龙县| 长春市| 文登市| 南部县| 博湖县| 涟水县| 堆龙德庆县| 天祝| 聂拉木县| 赤峰市| 广丰县| 襄樊市| 临沧市| 靖宇县| 长子县| 都江堰市| 泾源县| 禹城市| 台南市| 黄平县| 临清市| 安溪县| 东辽县| 平乡县| 潜山县| 和林格尔县| 房产| 南阳市| 新和县| 鄂尔多斯市| 手机|