百度 手机 js touch 手势 拖拽 思路
详细文档:http://cloudajs.org/docs/step4_API_Documentation#h2_7

百度touch.js手机监听事件分类:
缩放、 旋转、 滑动、 拖动开始 、拖动 、拖动结束、 长按、 敲击。
其中类中还详细分不同的触发事件。
//第一次拖拽
var dx, dy;
touch.on('#target', 'drag', function(ev){
dx = dx||0; //第一次拖拽dx是没有值的所以dx=0,等第一次拖拽完了之后在拖拽第二次dx的值就记录了 dragend 中的dx的值
dy = dy|| 0;
console.log('开始拖拽记录上次位置:'+dx+'---'+dy);
this.style.webkitTransform = "translate3d(" + (dx+ev.x)+'px' + "," + (dy+ev.y)+'px' + ",0)"; //第一次拖拽X轴的值是0+ev.x
});
touch.on('#target', 'dragend', function(ev){ //第一次停止拖拽时候dx是0的
dx = dx+ev.x; //第一次拖拽停止dx的值是0的 也就是0+第一次当前拖拽的值
dy = dy+ev.y;
console.log('结束记录位置:'+dx+'---'+dy);
//log("当前x值为:" + dx + ", 当前y值为:" + dy +".");
});
//第二次开始拖拽
// dx = dx||0; 第二次开始拖拽dx有值了就是第一次开始拖拽保留的临时值0+ev.x的值
// this.style.webkitTransform = "translate3d(" + (dx+ev.x)+'px' + "," + (dy+ev.y)+'px' + ",0)";
// 第二次拖拽当然是在第一停止的位置开始拖拽了所以是 第一拖拽停止所在位置的值+当前正在拖拽的值
// dx = dx+ev.x; //第二次结束要保留第二所停留的位置 第一次停止位置+当前拖拽的值
// 这里的难点就是 临时变量的定义的技巧 dx = dx||0 ;
支持的手势事件类型:
| 分类 | 参数 | 描述 |
|---|---|---|
| 缩放 | pinchstart | 缩放手势起点 |
| pinchend | 缩放手势终点 | |
| pinch | 缩放手势 | |
| pinchin | 收缩 | |
| pinchout | 放大 | |
| 旋转 | rotateleft | 向左旋转 |
| rotateright | 向右旋转 | |
| rotate | 旋转 | |
| 滑动 | swipestart | 滑动手势起点 |
| swiping | 滑动中 | |
| swipeend | 滑动手势终点 | |
| swipeleft | 向左滑动 | |
| swiperight | 向右滑动 | |
| swipeup | 向上滑动 | |
| swipedown | 向下滑动 | |
| swipe | 滑动 | |
| 拖动开始 | dragstart | 拖动屏幕 |
| 拖动 | drag | 拖动手势 |
| 拖动结束 | dragend | 拖动屏幕 |
| 拖动 | drag | 拖动手势 |
| 长按 | hold | 长按屏幕 |
| 敲击 | tap | 单击屏幕 |
| doubletap | 双击屏幕 |
案例:http://touch.code.baidu.com/examples.html
本站实例:https://sdeno.com/zp/baidutouch/
结合百度插件案例:《基于百度手势插件实现手机幻灯片效果》