移动设备手势事件库Touch.js使用详解


Posted in Javascript onAugust 18, 2017

Touch.js手势库是专门在Webkit内核浏览器的移动设备中使用中设计的, Touch.js是移动设备上的手势识别与事件库。Touch.js基于原生事件,支持事件代理, 性能更好,极简的API,秒速上手等优势。

1、旋转事件- startRotate

var angle = 0;
touch.on('#target', 'touchstart', function(ev){
ev.startRotate();
ev.preventDefault();
});
touch.on('#target', 'rotate', function(ev){
var totalAngle = angle + ev.rotation;
if(ev.fingerStatus === 'end'){
angle = angle + ev.rotation;
}
this.style.webkitTransform = 'rotate(' + totalAngle + 'deg)';
});

2、双指缩放事件-Scale

var target = document.getElementById("target");
target.style.webkitTransition = 'all ease 0.05s';
touch.on('#target', 'touchstart', function(ev){
ev.preventDefault();
});
var initialScale = 1;
var currentScale;
touch.on('#target', 'pinchend', function(ev){
currentScale = ev.scale - 1;
currentScale = initialScale + currentScale;
currentScale = currentScale > 2 ? 2 : currentScale;
currentScale = currentScale < 1 ? 1 : currentScale;
this.style.webkitTransform = 'scale(' + currentScale + ')';
log("当前缩放比例为:" + currentScale + ".");
});
touch.on('#target', 'pinchend', function(ev){
initialScale = currentScale;
});

3、识别单击, 双击和长按事件-Tap & Hold

touch.on('#target', 'hold tap doubletap', function(ev){
//console.log(ev.type);
});

4、向左, 向右滑动-Swipe

touch.on('#target', 'touchstart', function(ev){
ev.preventDefault();
});
var target = document.getElementById("target");
target.style.webkitTransition = 'all ease 0.2s';
touch.on(target, 'swiperight', function(ev){
this.style.webkitTransform = "translate3d(" + rt + "px,0,0)";
log("向右滑动.");
});
touch.on(target, 'swipeleft', function(ev){
log("向左滑动.");
this.style.webkitTransform = "translate3d(-" + this.offsetLeft + "px,0,0)";
});

5、拖拽事件-Drag

touch.on('#target', 'touchstart', function(ev){
ev.preventDefault();
});
var target = document.getElementById("target");
var dx, dy;
touch.on('#target', 'drag', function(ev){
dx = dx || 0;
dy = dy || 0;
log("当前x值为:" + dx + ", 当前y值为:" + dy +".");
var offx = dx + ev.x + "px";
var offy = dy + ev.y + "px";
this.style.webkitTransform = "translate3d(" + offx + "," + offy + ",0)";
});
touch.on('#target', 'dragend', function(ev){
dx += ev.x;
dy += ev.y;
});

6、原生事件-Touch

touch.on('#target', 'touchstart touchmove touchend', function(ev){
console.log(ev.type);
});

touch.js官方网站:http://touch.code.baidu.com/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 高效运行代码分析
Mar 18 Javascript
jquery链式操作的正确使用方法
Jan 06 Javascript
jQuery获取上传文件的名称的正则表达式
May 21 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
May 24 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
Bootstrap基本样式学习笔记之表单(3)
Dec 07 Javascript
详解Nuxt.js部署及踩过的坑
Aug 07 Javascript
Node.js+Express+Mysql 实现增删改查
Apr 03 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
Jun 05 Javascript
jQuery+ajax实现用户登录验证
Sep 13 jQuery
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
Oct 30 Javascript
JavaScript你不知道的一些数组方法
Aug 18 #Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 #Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
Aug 18 #Javascript
JS实现页面打印(整体、局部)
Aug 18 #Javascript
简单实现jQuery轮播效果
Aug 18 #jQuery
JavaScript编写的网页小游戏,很给力
Aug 18 #Javascript
ReactJs实现树形结构的数据显示的组件的示例
Aug 18 #Javascript
You might like
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
PHP常用函数小技巧
2008/09/11 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
基于jQuery的history历史记录插件
2010/12/11 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
vue3.0中友好使用antdv示例详解
2021/01/05 Vue.js
[05:43]VG.R战队教练Mikasa专访:为目标从未停止战斗
2016/08/02 DOTA
Python实现时钟显示效果思路详解
2018/04/11 Python
Python实现端口检测的方法
2018/07/24 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
简单了解python协程的相关知识
2019/08/31 Python
英国综合网上购物商城:The Hut
2018/07/03 全球购物
init进程的作用
2012/04/12 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
财务部经理岗位职责
2014/02/03 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
食品质检员岗位职责
2015/04/08 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
Python软件包安装的三种常见方法
2022/07/07 Python