最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

touch.js 拖動、縮放、旋轉(zhuǎn) (鼠標(biāo)手勢)功能代碼

 更新時間:2017年02月04日 13:55:29   作者:孟然  
這篇文章主要介紹了touch.js 拖動、縮放、旋轉(zhuǎn) (鼠標(biāo)手勢)功能,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

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

var cat = window.cat || {}; 
cat.touchjs = { 
  left: 0, 
  top: 0, 
  scaleVal: 1,  //縮放 
  rotateVal: 0,  //旋轉(zhuǎn) 
  curStatus: 0,  //記錄當(dāng)前手勢的狀態(tài), 0:拖動, 1:縮放, 2:旋轉(zhuǎn) 
  //初始化 
  init: function ($targetObj, callback) { 
    touch.on($targetObj, 'touchstart', function (ev) { 
      cat.touchjs.curStatus = 0; 
      ev.preventDefault();//阻止默認(rèn)事件 
    }); 
    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); 
    }); 
  }, 
  //旋轉(zhuǎn) 
  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調(diào)用:

var $targetObj = $('#targetObj'); 
//初始化設(shè)置 
cat.touchjs.init($targetObj, function (left, top, scale, rotate) {}; 
//初始化拖動手勢(不需要就注釋掉) 
cat.touchjs.drag($targetObj, function (left, top) { }); 
//初始化縮放手勢(不需要就注釋掉) 
cat.touchjs.scale($targetObj, function (scale) { }); 
//初始化旋轉(zhuǎn)手勢(不需要就注釋掉) 
cat.touchjs.rotate($targetObj, function (rotate) { }); 

以上所述是小編給大家介紹的touch.js 拖動、縮放、旋轉(zhuǎn) (鼠標(biāo)手勢)功能代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JavaScript用JSONP跨域請求數(shù)據(jù)實例詳解

    JavaScript用JSONP跨域請求數(shù)據(jù)實例詳解

    Javascript跨域訪問是web開發(fā)者經(jīng)常遇到的問題,什么是跨域,就是一個域上加載的腳本獲取或操作另一個域上的文檔屬性。下面這篇文章主要介紹了JavaScript用JSONP跨域請求數(shù)據(jù)的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 淺談javascript alert和confirm的美化

    淺談javascript alert和confirm的美化

    window對象的alert和confirm標(biāo)準(zhǔn)方法在不同瀏覽器的顯示效果不太相同,有個相同點(diǎn)是都不是很美觀。本文對此解決方法進(jìn)行介紹:使用js和css分別仿照它們,提供另一套函數(shù),使在不同瀏覽器的有著相同的體驗效果。下面就跟小編一起來看下吧
    2016-12-12
  • 網(wǎng)頁開發(fā)中的容易忽略的問題 javascript HTML中的table

    網(wǎng)頁開發(fā)中的容易忽略的問題 javascript HTML中的table

    最近在搞在線電子表格這個東西,下面的是使用中的一些知識技巧。
    2009-04-04
  • javascript this用法小結(jié)

    javascript this用法小結(jié)

    this是JavaScript中功能最強(qiáng)大的關(guān)鍵字之一。不幸的是,如果你不知道它具體怎么工作,你將很難正確使用它。
    2008-12-12
  • 18個高頻使用的JS工具方法總結(jié)

    18個高頻使用的JS工具方法總結(jié)

    這篇文章主要為大家分享一下18個在項目中使用很高頻的JS工具方法,希望大家能夠知其然也知其所以然,不要只會調(diào)用?api,也要會寫?api,快跟隨小編一起學(xué)習(xí)一下吧
    2022-04-04
  • 小程序Scroll-view上拉滾動刷新數(shù)據(jù)

    小程序Scroll-view上拉滾動刷新數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了小程序Scroll-view上拉滾動刷新數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 用javascript實現(xiàn)點(diǎn)擊鏈接彈出"圖片另存為"而不是直接打開

    用javascript實現(xiàn)點(diǎn)擊鏈接彈出"圖片另存為"而不是直接打開

    用javascript實現(xiàn)點(diǎn)擊鏈接彈出"圖片另存為"而不是直接打開...
    2007-08-08
  • Echarts直角坐標(biāo)系x軸y軸屬性設(shè)置整理大全

    Echarts直角坐標(biāo)系x軸y軸屬性設(shè)置整理大全

    直角坐標(biāo)系的設(shè)置指的是網(wǎng)格,坐標(biāo)軸和區(qū)域縮放的配置,下面這篇文章主要給大家介紹了關(guān)于Echarts直角坐標(biāo)系x軸y軸屬性設(shè)置的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 詳解JavaScript中Proxy與Object.defineProperty的區(qū)別

    詳解JavaScript中Proxy與Object.defineProperty的區(qū)別

    Proxy和Object.defineProperty都是JavaScript中用于實現(xiàn)對象屬性攔截和代理的機(jī)制,但它們在功能和應(yīng)用方面有一些區(qū)別,本文通過代碼示例詳細(xì)介紹了二者的區(qū)別,感興趣的朋友可以參考下
    2023-06-06
  • JavaScript requestAnimationFrame動畫詳解

    JavaScript requestAnimationFrame動畫詳解

    這篇文章主要為大家詳細(xì)介紹了JavaScript requestAnimationFrame動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評論

关岭| 乌审旗| 翁源县| 怀宁县| 南城县| 九寨沟县| 和平县| 漳平市| 天峨县| 聂拉木县| 松原市| 富顺县| 桓仁| 旺苍县| 若羌县| 洞头县| 岫岩| 黑龙江省| 南充市| 娱乐| 昔阳县| 廊坊市| 永新县| 岑溪市| 枣强县| 旬阳县| 西昌市| 札达县| 青州市| 洛扎县| 台前县| 松江区| 海阳市| 理塘县| 界首市| 黄龙县| 木兰县| 通海县| 怀宁县| 浦东新区| 齐齐哈尔市|