国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 17:44:23
字體:
來源:轉載
供稿:網友

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

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 拖動、縮放、旋轉 (鼠標手勢)功能代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临沭县| 沾化县| 南丹县| 溧阳市| 涿鹿县| 花莲市| 保靖县| 通榆县| 大同市| 渝北区| 潞西市| 菏泽市| 菏泽市| 绩溪县| 高青县| 贵阳市| 长岛县| 延川县| 锦屏县| 茶陵县| 集贤县| 茶陵县| 大邑县| 江津市| 保定市| 曲水县| 中卫市| 凉城县| 息烽县| 澄江县| 盱眙县| 巢湖市| 尤溪县| 囊谦县| 曲靖市| 平顶山市| 蓬莱市| 长沙市| 宜黄县| 南涧| 黄大仙区|