手机开发中,除了我们平时用的jquery基本事件之外,还有很多手势,今天介绍一款jquery手势插件jGestures,地址是:http://jgestures.codeplex.com/

这个插件的强大之处在于它可以监听以下事件’pinch’(缩放手势), ‘rotate’(旋转手势), ‘swipe’(滑动手势), ‘tap’(轻触) 以及 ‘orientationchange’(改变设备方向)。等等,有了这个插件,手机web开发就更加方便了。

事件简介

orientationchange 代表设备顺时针或者逆时针旋转.此事件可以被设备触发,可能使用的是重力传感器.

pinch 缩放手势(两个手指在屏幕上的相对运动)

rotate 旋转手势(两个手指顺时针或者逆时针旋转)

swipemove 在正在滑动时触发(在设备屏幕上移动手指,比如:拖动)

swipeone 单点滑动手势,滑动完成后触发(一个手指在屏幕上移动)

swipetwo 两点滑动(两个手指在屏幕上方向一致的滑动)

swipethree 三点滑动(三个手指在屏幕上方向一致的滑动)

swipefour 四点滑动(四个手指在屏幕上方向一致的滑动)

swipeup 向上滑动,在严格的向上滑动手势完成后触发

swiperightup 向右上角滑动,在向右且向上的滑动手势完成后触发

swiperight 向右滑动,在严格的向右滑动手势完成后触发

swiperightdown 向右下角滑动,在向右且向下的滑动手势完成后触发

swipedown 向下滑动,在严格的向下滑动手势完成后触发

swipeleftdown 向左下角滑动,在向左且向下的滑动手势完成后触发

swipeleft 向左滑动,在严格的向左滑动手势完成后触发

swipeleftup 向左上角滑动,在向左且向上的滑动手势完成后触发

tapone 在单个手指轻点的手势后触发

taptwo 在两个手指一起轻点的手势后触发

tapthree 在三个手指一起轻点的手势后触发

pinchopen 撑开手势,当两个手指撑大并离开设备时触发.

pinchclose 捏紧手势,当两个手指捏紧并离开设备时触发.

rotatecw 两个手指顺时针旋转并且离开屏幕时触发(two fingers rotating clockwise)

rotateccw 两个手指逆时针旋转并且离开屏幕时触发 (two fingers rotating counterclockwise)

shake 当检测到设备正在摇晃时触发

shakefrontback 当检测到摇晃动作,且可以被解读为前后移动之时触发.

shakeleftright 当检测到摇晃动作,且可以被解读为左右移动之时触发.

shakeupdown 当检测到摇晃动作,且可以被解读为上下移动之时触发.

关于swipe,我上一篇文章已经介绍过了,http://blog.csdn.net/qq_39198420/article/details/77862782

当页面有滚动条的时候,swipe的up,down,left,right可能会不触发!事件会被滚动事件覆盖掉!

事件用法

<script>
jQuery(document).ready(function () {jQuery(window).bind('shakeupdown',function(event_,data_){alert('shake: '+ data_.description)})})
</script>

官方案例如下:

 <script>
function log(event_, obj) {// ignore bubbled handlers
//        if ( obj.originalEvent.currentTarget !== obj.originalEvent.target ) { return; }obj.originalEvent.preventDefault();jQuery('#logger').find('li').slice(1,jQuery('#logger').find('li').size()-8).animate({'opacity':'0', 'height':'0'},function(){jQuery(this).remove()}).end().end().append('<li><b>'+jQuery(obj.originalEvent.currentTarget).attr('id')+'</b>: '+obj.description+ ' : '+obj.type +'</li>')}function manipulate(event_, obj) {// ignore bubbled handlers
//        if ( obj.originalEvent.currentTarget !== obj.originalEvent.target ) { return; }event_.preventDefault();obj.originalEvent.preventDefault();log(event_, obj)var _a = obj.description.split(':');jQuery(obj.originalEvent.currentTarget).css('zIndex','1000')switch(_a[0]) {case 'pinch'://jQuery(obj.originalEvent.currentTarget).css('-webkit-transform','scale('+ ( obj.direction * obj.delta[0].moved ) +')');break;case  'rotate'://jQuery(obj.originalEvent.currentTarget).css('-webkit-transform','rotate('+ (  obj.delta[0].moved ) +'deg)');break;case  'swipemove':if(_a[1] != 1) {break;}jQuery(obj.originalEvent.currentTarget).css('-webkit-transition','');jQuery(obj.originalEvent.currentTarget).css('left', parseInt(jQuery(obj.originalEvent.currentTarget).css('left')) + obj.delta[0].startX );jQuery(obj.originalEvent.currentTarget).css('top', parseInt(jQuery(obj.originalEvent.currentTarget).css('top')) + obj.delta[0].startY );
//            jQuery(obj.originalEvent.currentTarget).data('moving',true)break;case 'swipe' :
//            if(_a[1] != 1 || jQuery(obj.originalEvent.currentTarget).data('moving') } {break;}jQuery(obj.originalEvent.currentTarget).css('-webkit-transition','all 1s ease-out').css('left', parseInt(jQuery(obj.originalEvent.currentTarget).css('left')) + obj.delta[0].startX );jQuery(obj.originalEvent.currentTarget).css('-webkit-transition','all 1s ease-out').css('top', parseInt(jQuery(obj.originalEvent.currentTarget).css('top')) + obj.delta[0].startY );break;}jQuery(obj.originalEvent.currentTarget).css('zIndex','')
}function BlockMove(event) {// Tell Safari not to move the window.event.preventDefault() ;}jQuery(document).ready(function() {jQuery('#tap').bind('tapone',log);jQuery('#tap').bind('taptwo',log);jQuery('#tap').bind('tapthree',log);jQuery('#tap').bind('tapfour',log);jQuery('#swipe').bind('swipeone',log);jQuery('#swipe').bind('swipetwo',log);jQuery('#swipe').bind('swipethree',log);jQuery('#swipe').bind('swipefour',log);jQuery('#swipe').bind('swipeup',log);jQuery('#swipe').bind('swiperightup',log);jQuery('#swipe').bind('swiperight',log);jQuery('#swipe').bind('swiperightdown',log);jQuery('#swipe').bind('swipedown',log);jQuery('#swipe').bind('swipeleftdown',log);jQuery('#swipe').bind('swipeleft',log);jQuery('#swipe').bind('swipeleftup',log);jQuery('#change').bind('pinchopen',manipulate);jQuery('#change').bind('pinchclose',manipulate);jQuery('#change').bind('rotatecw',manipulate);jQuery('#change').bind('rotateccw',manipulate);jQuery('#change').bind('swipeone',manipulate);jQuery('#livechange').bind('swipeone',manipulate);jQuery('#livechange').bind('swipemove',manipulate);jQuery('#livechange').bind('pinch',manipulate);jQuery('#livechange').bind('rotate',manipulate);})</script>

移动端那些事儿(二)jquery手势插件之jGestures相关推荐

  1. jQuery二维码插件生成网页二维码

    在移动端越来越流行的今天,在PC上做好之后经常会放置一个二维码引导用户到移动端上体验移动版的版本. 如果是一个固定的二维码,我们只需要在网上找个地方生成图片,然后放上图片就可以了.但如果是地址不固定需 ...

  2. WEB文件上传之JQuery ajaxfileupload插件使用(二)

    1.JQuery ajaxfileupload插件使用准备 下载地址: http://www.phpletter.com/DOWNLOAD/ 2.原理分析 ajaxfileupload也是利用ifra ...

  3. 使用jQuery的插件qrcode生成二维码(静态+动态生成)及常见问题解决方法

    使用jQuery的插件qrcode生成二维码(静态+动态生成)及常见问题解决方法 参考文章: (1)使用jQuery的插件qrcode生成二维码(静态+动态生成)及常见问题解决方法 (2)https: ...

  4. 手势控制幻灯片播放html,FlexSlider|功能强大的响应式jQuery幻灯片插件

    FlexSlider是一款功能强大的响应式jQuery幻灯片插件.该幻灯片插件可以制作为带缩略图模式,旋转木马模式等.它可以自适应屏幕大小,并可以制作多种幻灯片过渡特效.它的兼容性强,可以兼容IE7+ ...

  5. html 仿excel,智表-浏览器端仿EXCEL表格jQuery插件

    智表(ZCELL)是一款浏览器端仿EXCEL表格jQuery插件.智表可以为你提供EXCEL般的智能体验,并带有灵活的单元格选中与实时计算功能,强大的复制与粘贴功能,标准化数据加载与获取,以及灵活的外 ...

  6. JQuery qrcode插件生成二维码,并转换为image图片可识别

    前言 插件是基于jquery的,必须先引入jquery再引入qrcode插件 1.引入jquery 和 jQuery qrcode插件 引入jq <script src="https: ...

  7. j2ee 简单网站搭建:(十)jquery ztree 插件使用入门

    为什么80%的码农都做不了架构师?>>>    <j2ee 简单网站搭建:(一) windows 操作系统下使用 eclipse 建立 maven web 项目> < ...

  8. jQuery验证插件

    jQuery验证插件 原文:jQuery验证插件 学习要点: 1.使用 validate.js 插件 2.默认验证规则 3.validate()方法和选项 4.validate.js 其他功能 验证插 ...

  9. Jquery 表格插件DataTables

    [转]Jquery 表格插件DataTables 博客分类: Jquery jquerydatatablesjavascript  1.特性 可变长度分页: 动态过滤: 多列排序,带数据类型检测功能: ...

  10. 前端jquery日期插件

    分享一个前端jquery日期插件,方便自己后面需要时查找使用. 效果: 1.html demo. <!DOCTYPE html> <html lang="en"& ...

最新文章

  1. [转]java垃圾回收之循环引用
  2. windows无法启动oracleremexecservice服务_Windows下MySQL无法启动万能解决方案
  3. 公式中表达单个双引号【】和空值【】的方法及说明
  4. Java开发找工作最懵圈的问题:到底啥是分布式系统开发经验?
  5. 方便维护下拉框数据的UI设计
  6. Idea在plugin的marketplace中一直查不到东西安装插件
  7. android 9.0的模拟器,Exagear模拟器最新版
  8. oracle 生成随机姓名_Oracle 生成随机数,随机字符串
  9. Auto.js 全命令整理(三) 输出专题
  10. 使用Mybatis如何对Mysql进行分页功能?
  11. 【unity3d study ---- 麦子学院】---------- unity3d常用组件及分析 ---------- 组件的生命周期...
  12. Micro USB 引脚定义及OTG (USB-HOST) 接线
  13. 传奇服务器端地图链接在哪个文件夹,传奇服务端目录文件详细说明
  14. intel 显卡 opencl安装
  15. 【U8】凭证上修改使用自定义项科目的辅助信息
  16. 用STM32CubeIDE速攻FreeRTOS
  17. android 层叠view,RecyclerView进阶之层叠列表(上)
  18. js 点击按钮或者图片,实现图片上传并显示在页面上
  19. 数字电网白皮书 附下载
  20. 电工电子自动控制实验设备QY-DG328B

热门文章

  1. Gradle 2.0 用户指南翻译——第二十三章. Java 插件
  2. win7怎么清理java缓存文件夹_win7c盘内存清理最彻底的方法
  3. setPositiveButton和setNegativeButton
  4. 六度分离_hdu_1869(floyd算法).java
  5. 国内域名如何转入 GoDaddy,域名转入GoDaddy要注意?
  6. 数据分析-kaggle泰坦尼克号生存率分析
  7. 用防火墙自动拦截攻击IP
  8. 隐藏IIS响应头信息
  9. OSChina 周六乱弹 ——一身肥膘还不锻炼想下锅啊
  10. 洛谷3356火星探险问题