移动设备手势事件库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 相关文章推荐
juqery 学习之四 筛选过滤
Nov 30 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
div模拟滚动条效果示例代码
Oct 16 Javascript
自己封装的javascript事件队列函数版
Jun 12 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
jQuery绑定事件-多种实现方式总结
May 09 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 Javascript
Node.js console控制台简单用法分析
Jan 04 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 Javascript
vue项目实现多语言切换的思路
Sep 17 Javascript
vue动态绑定style样式
Apr 20 Vue.js
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
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
浅析php原型模式
2014/11/25 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
php array_map()函数实例用法
2021/03/03 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
JavaScript 动态改变图片大小
2009/06/11 Javascript
jQuery 对Select的操作备忘记录
2011/07/04 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
numpy实现RNN原理实现
2021/03/02 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
请说出以下代码输出什么
2013/08/30 面试题
法学研究生自我鉴定范文
2013/12/04 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL