移动设备手势事件库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 DOM学习第八章 表单错误提示
Feb 19 Javascript
Javascript改变CSS样式(局部和全局)
Dec 18 Javascript
JS制作手机端自适应缩放显示
Jun 11 Javascript
JQuery中DOM实现事件移除的方法
Jun 13 Javascript
直接拿来用的页面跳转进度条JS实现
Jan 06 Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 Javascript
Bootstrap表单布局
Jul 19 Javascript
Javascript创建类和对象详解
May 31 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
Sep 30 Javascript
JavaScript解析机制与闭包原理实例详解
Mar 08 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
Aug 22 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
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
2016/12/08 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
微信小程序实现搜索历史功能
2020/03/26 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
Python中splitlines()方法的使用简介
2015/05/20 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python Requests安装与简单运用
2016/04/07 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
土木工程毕业生自荐信
2013/09/21 职场文书
村官工作鉴定评语
2014/01/27 职场文书
软件测试专业推荐信
2014/09/18 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书