移动设备手势事件库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监听浏览器的问题
Jun 23 Javascript
这段js代码得节约你多少时间
Dec 20 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
jQuery实现微信长按识别二维码功能
Aug 26 Javascript
清除浏览器缓存的几种方法总结(必看)
Dec 09 Javascript
浅谈Javascript中的Label语句
Dec 14 Javascript
bootstrap输入框组件使用方法详解
Jan 19 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
Feb 09 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
Mar 10 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
Mar 07 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 Javascript
详解Ubuntu安装angular-cli遇到的坑
Sep 08 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
Nginx下配置codeigniter框架方法
2015/04/07 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
实现vuex原理的示例
2020/10/21 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
关于numpy数组轴的使用详解
2019/12/05 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
python保留小数位的三种实现方法
2020/01/07 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
2020/02/29 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
最受欢迎的自我评价
2013/12/22 职场文书
书法比赛获奖感言
2014/02/10 职场文书
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
论文诚信承诺书
2014/05/23 职场文书
总经理岗位职责
2015/02/04 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书