移动设备手势事件库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 相关文章推荐
基于jquery的direction图片渐变动画效果
May 24 Javascript
js判断背景图片是否加载成功使用img的width实现
May 29 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
Jun 20 Javascript
JS定义网页表单提交(submit)的方法
Mar 20 Javascript
jQuery图片特效插件Revealing实现拉伸放大
Apr 22 Javascript
PHP+mysql+Highcharts生成饼状图
May 04 Javascript
js不间断滚动的简单实现
Jun 03 Javascript
jquery获取easyui日期控件的值实现方法
Nov 09 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
vue中使用sessionStorage记住密码功能
Jul 24 Javascript
浅谈Redux中间件的实践
Jul 27 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
Mar 25 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
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
php实现的双向队列类实例
2014/09/24 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
javascript各浏览器中option元素的表现差异
2011/04/07 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
python实现网页链接提取的方法分享
2014/02/25 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
2017/10/16 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
numpy.where() 用法详解
2019/05/27 Python
python如何删除文件中重复的字段
2019/07/16 Python
如何通过python计算圆周率PI
2020/11/11 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
涉外文秘个人求职的自我评价
2013/10/07 职场文书
学校元旦晚会方案
2014/02/19 职场文书
副总经理党的群众路线教育实践活动个人对照检查材料思想汇报
2014/10/06 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
党支部工作总结2015
2015/04/01 职场文书
无房证明样本
2015/06/17 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python