移动设备手势事件库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 相关文章推荐
JS中style属性
Oct 11 Javascript
WEB 浏览器兼容 推荐收藏
May 14 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
Dec 08 Javascript
jQuery中not()方法用法实例
Jan 06 Javascript
javascript求日期差的方法
Mar 02 Javascript
JavaScript函数内部属性和函数方法实例详解
Mar 17 Javascript
深入理解JS中的substr和substring
Apr 26 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
Oct 10 Javascript
React Native之TextInput组件解析示例
Aug 22 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
如何抽象一个Vue公共组件
Oct 17 Javascript
js删除对象中的某一个字段的方法实现
Jan 11 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
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
微信支付开发交易通知实例
2016/07/12 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
php微信开发之谷歌测距
2018/06/14 PHP
php数组遍历类与用法示例
2019/05/24 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
如何开发出更好的JavaScript模块
2017/12/22 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
Python三元运算实现方法
2015/01/12 Python
Python描述器descriptor详解
2015/02/03 Python
jupyter安装小结
2016/03/13 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
Python unittest单元测试框架总结
2018/09/08 Python
对python判断是否回文数的实例详解
2019/02/08 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
社区三八妇女节活动总结
2015/02/06 职场文书
学生病假条范文
2015/08/17 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书
MySQL创建管理LIST分区
2022/04/13 MySQL