`
caibinghong
  • 浏览: 149866 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

指尖下的js —— 多触式web前端开发之三:处理复杂手势

 
阅读更多

指尖下的js —— 多触式web前端开发之三:处理复杂手势

 

这篇文章着重介绍多触式设备上特有的gesture event(android和iOS对这个事件的封装大同小异)。这个
事件是对touch event的更高层的封装,和touch一样,它同样包括gesturestart,gesturechange,
gestureend三个事件回调: 
gesturestart    // 当有两根或多根手指放到屏幕上的时候触发
gesturechange    // 当有两根或多根手指在屏幕上,并且有手指移动的时候触发
gestureend    // 当倒数第二根手指提起的时候触发,结束gesture

    事件处理函数中会得到一个GestureEvent类型的参数,它包含了手指的scale(两根移动过程中分开的比例
)信息和rotation(两根手指间连线转动的角度)信息。 
    当两根或以上的手指在屏幕上活动的时候,我们可以做出一些较为复杂的手势。这将涉及到普通的mouse事
件,touch事件和gesture事件,情况比较复杂。touch已经在第一篇文章里详细介绍,这里就简单带过。 
    我们还是先看看当分别将两根手指放到屏幕上的时候,会触发哪些事件吧: 
1、第一根手指放下,触发touchstart,除此之外什么都不会发生(请参照第二篇文章,手指提起才会触发
mouse的各事件) 
2、第二根手指放下,触发gesturestart 
3、触发第二根手指的touchstart 
4、立即触发gesturechange 
5、手指移动,持续触发gesturechange,就像鼠标在屏幕上移动的时候不停触发mousemove一样 
6、第二根手指提起,触发gestureend,以后将不会再触发gesturechange 
7、触发第二根手指的touchend 
8、触发touchstart!注意,和第一篇文章里介绍的一样,多根手指在屏幕上,提起一根,会刷新一次全局
touch!重新触发第一根手指的touchstart,这点和苹果官方网站上介绍的不同。 
9、提起第一根手指,触发touchend 
    Gesture事件的处理和Touch类似,我们一般会在gesturechange的时候利用GestureEvent对象中的信息来
做一些事情: 
var angle = event.rotation;
var scale = event.scale;

    这样能够取得scale和rotation信息,然后我们可以: 
e.target.style.webkitTransform = 'scale(' + e.scale + startScale + ') rotate(' + e.rotation +
startRotation + 'deg)';


    这段代码能让element随着你的两根手指的运动而转动、伸展。以下是一段测试代码,请用
ipad/iphone/android打开: http://wanglingshu.com/wp-content/uploads/ios-gesture.html 
    还有一件要说明的事情是,对于复杂手势,是否会触发某些鼠标事件?确实有,不过我只找到了一个。不管
你的两根手指在屏幕上伸缩还是转动,都不会有任何鼠标事件触发,但当你的两根手指同时朝上或者朝下移动
的时候,则会触发某些事件。请看下图:

两根手指同时向上或向下滚动,如果target element是一个scrollable element(也就是绑定了mousewheel的
element)的话,将会触发mousewheel事件。如果不是scrollable element,则当手指停止移动的时候,会触
发onscoll。这里请和第二篇文章的body scroll区别一下,如果你要滚动body,只需要一根手指轻轻拂动屏幕
,但是你要滚动一个内部div或者iframe,则需要动用两根手指。     这也是多触式设备一个不太方便的地方。而对于我们开发者来说,这种不方便被放大了。。。因为从用户体
验角度来说,要求用户使用两根手指滚动一个内部element显然是不合适的,而要实现像滚动body一样用一根
手指优雅地滚动,我们必须利用touchevent,在它的回调函数中用代码来实现scroll。这里介绍一个段很不错的
多触式滚动组件:iscroll-4 
http://cubiq.org/scrolling-div-on-iphone-ipod-touch 
    用起来很简单,new一个iScroll对象,传入需要滚动的inner element作为参数就行了。 

分享到:
评论

相关推荐

    Web前端开发笔试考点

    Web 前端开发是网站开发的重要组成部分,它涉及到网页的结构、表现和行为三个方面。为了确保网页的正确显示和良好的用户体验,Web 前端开发者需要遵循一系列标准,包括结构标准语言、表现标准语言和行为标准语言。 ...

    计算机图形学——基于MFC三维图形开发 孔令德版

    在本资源中,"计算机图形学——基于MFC三维图形开发 孔令德版",作者孔令德提供了一套针对MFC(Microsoft Foundation Classes)框架的三维图形编程教程,帮助学习者深入理解计算机图形学在实际应用中的实现方式。...

    霍尔式三叶指尖陀螺资料

    《霍尔式三叶指尖陀螺技术详解》 在当今科技日新月异的时代,指尖陀螺作为一种结合了趣味性和科技元素的小型玩具,深受广大爱好者喜爱。特别是霍尔式三叶指尖陀螺,它利用了霍尔效应原理,使得陀螺在旋转时能稳定并...

    指尖星空——天文科普网,网页设计课小组作业,静态页面。.zip

    这份作业合集适用于所有对网页设计、前端开发感兴趣的人,无论你是学生、初学者还是有一定经验的开发者。无论你是想学习新的技术,还是想了解一个完整的项目开发流程,这份资料都将为你提供极大的帮助。 使用建议:...

    一种基于多级并行处理器的高速实时手势识别及指尖轨迹追踪系统.pdf

    "一种基于多级并行处理器的高速实时手势识别及指尖轨迹追踪系统" 本文提出了一种基于多级并行处理器的高速实时手势识别及指尖轨迹追踪系统。该系统包含64×64处理单元(PE)阵列、64个简化精简指令集(RISC)构架的...

    Opencv项目实战:14 手势控制音量.zip

    在本项目中,"Opencv项目实战:14 手势控制音量",我们将探讨如何利用OpenCV库和Python编程来实现一个创新的手势控制音量的应用。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了...

    【web课设】iOS手机APP开发响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    【web课设】科技农业土地开发响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    指尖上的生活——95后手机使用行为调研报告1

    《指尖上的生活——95后手机使用行为调研报告》揭示了95后这一年轻群体对手机的依赖程度和使用特点。95后主要是16至19岁的学生,部分已经进入社会,他们的生活与移动互联网紧密相连。以下是该报告的主要发现: 1. *...

    手势指尖检测算法c++实现

    手势指尖检测算法是计算机视觉领域中的一个重要应用,它在人机交互、虚拟现实、智能设备控制等方面有着广泛的应用。本文将深入探讨如何使用C++来实现这一算法,并着重讲解肤色分割、手势分割以及手指指尖检测的关键...

    处理用户的手以检测指尖和手势_C++_C_下载.zip

    标题中的“处理用户的手以检测指尖和手势_C++_C_下载.zip”表明这是一个关于使用C++或C语言实现的手势识别技术的项目,主要关注的是对手指尖位置的检测。这种技术通常与计算机视觉、图像处理以及机器学习相关,特别...

    微营销——指尖的利器

    微营销——指尖的利器 pdf电子书 传统营销和微营销

    【web课设】旅行计划响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    【web课设】互联网农业响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    【web课设】安保公司响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    【web课设】产后康复瑜伽响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    【web课设】时尚平面模特响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    【web课设】农业机械化响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

    【web课设】宠物食品狗粮响应式网页-HTML源码.7z

    探索前端开发的艺术,体验HTML源码的魅力!【web课设】响应式网页-HTML源码,专...立即查看【web课设】响应式网页-HTML源码,开启你的前端开发之旅,让自己站在技术的前沿。这不仅是一份资源,更是一次改变未来的机会。

Global site tag (gtag.js) - Google Analytics