移动设备手势事件库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下过滤数组重复值的代码
Sep 10 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
Jan 07 Javascript
js post方式传递提交的实现代码
May 31 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 Javascript
javascript中DOM复选框选择用法实例
May 14 Javascript
jQuery实现下拉加载功能实例代码
Apr 01 Javascript
js实现表格筛选功能
Jan 18 Javascript
jQuery源码分析之init的详细介绍
Feb 13 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
May 03 Javascript
详解.vue文件中style标签的几个标识符
Jul 17 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 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脚本代码
2011/02/19 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
介绍Python中的文档测试模块
2015/04/28 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
资料员岗位职责
2013/11/17 职场文书
火锅店创业计划书范文
2014/02/02 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
小学运动会开幕词
2016/03/04 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python