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

webapp触摸事件介绍:处理简单手势

 
阅读更多

  这篇文章将描述多触式网页开发中对手势(Gesture)事件的处理。
    水果设备中的Gesture,广义的说包括手指点击(click),轻拂(flick),双击(double-click),两只手指的分开、闭合(scale)、转动(rotate)等一切手指能在屏幕上做的事情。iOS上设计了了一系列手势来模拟和扩展鼠标操作,比如手指放下后迅速提起会触发click事件,手指向上滑动,停止,会触发body的onscroll事件等等。但是,狭义的Gesture事件,也就是能够addEventListener的GestureEvent对象,却并不是一个非常强大的存在,它只在有两根或多根手指放在屏幕上的时候触发,并且只包含手指分开比例(scale)和手指转动角度(rotation)信息。对于其他各种常用的手势,我们必须利用别的事件来处理。
    下面从单根手指的事件开始说起。。。
    我们先来考虑一个最简单的手势,手指放下后迅速提起,这个手势做出来后会发生什么?大家当然会想到click,其实在click发生以前,还有很多事情发生,请看下图:



这里先解释一下什么是clickable element,就是一个绑定了click, mousedown, mouseup, mousemove事件的任何html element(注意,没有绑定事件处理的element不算clickable element)。从这张图可以看出,手指提起的一刹那,首先触发的并不是click事件,而是mouseover和mousemove。然后,系统会判断接收到事
件的element的内容是否被改变,如果内容被改变,接下来的事件都不会触发,如果没有改变,会按照mousedown,mouseup,click的顺序触发事件。什么?你问mouseout在哪?这个事件的处理,比较尴尬,上面说的一系列事件都完了以后,如果你再点击一个clickable element,就会触发上一个clickable element的mouseout事件了。。。比较纠结,建议不要在多触版网页上使用mouseout。
    那么,如果手指放下后不提起又会发生什么呢?什么都不会发生,没有任何事件会被触发。但是,如果对象是一个img并且有alt属性的话,这个动作将会显示img的alt字符串。如果是一个link的话,这个动作会显示“在新窗口打开连接”选项,但是,不会有任何用户定义事件触发。
    最后一种关于单根手指的事件,是放下后滑动手指。注意,在滑动的过程当中,不会触发除touchmove以外的任何事件(请不要试图在这时处理mousemove)。手指在滑动的时候,整个page应该会跟着移动,除非你preventDefault了body的touchmove。当手指停下来后,page的onscroll将会触发。除此之外,没有什么我们熟悉的事情会发生。

  • 大小: 29.1 KB
分享到:
评论

相关推荐

    lb.zip_webapp

    2. 触摸事件:针对移动设备的触摸特性,优化滑动事件,使滑动操作更加顺畅自然。 3. 性能优化:减少DOM操作,避免频繁重绘和回流,使用requestAnimationFrame进行动画处理,提高页面性能。 4. 轻量级库:选择轻量...

    iPhone WebApp 开发指南

    5. 触摸事件:利用touchstart、touchmove和touchend等事件,实现触控操作的响应式设计。 三、WebApp开发基础 1. 适应性布局:使用媒体查询(Media Queries)进行响应式设计,确保WebApp在不同尺寸的屏幕上都能正常...

    漂亮的滑动触摸的jq轮播图有很多个

    8. **jQueryJdt9397201705310027**:这可能是“jQuery Dynamic Touch”插件,允许用户通过触摸手势动态控制轮播,增强了移动端的用户体验。 9. **jquery-cool-image-slider-thumb**:这个插件很可能包含了缩略图...

    Webapp初稿pad版

    综上所述,构建Webapp初稿pad版需要结合Pad的特性和用户习惯,从响应式设计、触摸交互、手势识别等多个角度出发,打造一个流畅、高效且易于使用的应用。通过不断的测试和优化,可以提供给Pad用户一个优秀的Web应用...

    html5仿触屏手机手势解锁密码特效

    `TouchEvent`是专门为触摸屏幕设计的一组事件,包括`touchstart`(触摸开始)、`touchmove`(触摸移动)和`touchend`(触摸结束)等,这些事件可以帮助我们跟踪用户的触摸行为。 其次,我们需要创建一个画布元素(`...

    WebApp:简单的webapp自适应示例

    9. **触摸事件和手势识别**:对于触屏设备,需要考虑触摸事件(如`touchstart`, `touchmove`, `touchend`)以及手势识别(如捏合缩放、滑动)的支持,以提供更好的交互体验。 10. **移动优先设计**:设计时应首先...

    webapp开发利器[参照].pdf

    4. **精确捕捉元素**:iscroll可以精确识别并处理用户的触摸事件,确保元素选择的准确性。 5. **自定义滚动条**:可以定制滚动条的样式和行为,使其与应用设计更加融合。 然而,iscroll在不同平台和浏览器上的表现...

    web app实现左右滑动控制菜单

    7. 兼容性处理:考虑到不是所有设备都支持触摸事件,可能需要添加鼠标事件作为备用方案,或者使用像Hammer.js这样的库来处理跨平台的触摸事件。 通过以上步骤,我们可以构建一个响应用户手势、交互流畅的Web应用...

    移植Android的UI组件到Web端以Android的方式来制作高性能优体验的WebApp

    3. **手势识别**:为了模拟Android原生应用的触摸交互,框架可能会集成手势识别库,支持滑动、点击、长按等手势事件。 4. **动画和过渡效果**:AndroidUI4Web可能提供与Android相仿的动画和过渡效果,以提升用户...

    移动网页div左右滑动

    在实际项目中,我们可能会遇到浏览器兼容性问题,这时可以引入像Hammer.js这样的库,它封装了触摸事件的处理,并提供了滑动等手势的支持,可以简化开发过程。 最后,为了优化用户体验,我们还需要考虑防止默认滚动...

    webapp、手机网站、移动开发下拉刷新加载更多内容分享

    实现下拉刷新的关键在于捕获触摸事件,跟踪手指滑动距离,并在达到特定阈值时触发刷新操作。同时,视觉反馈如加载动画也是必不可少的,以告知用户当前的操作状态。 **加载更多**(Load More)功能则是在用户滚动到...

    appium-draws-its-logo:在此演示中,appium使用多点触摸手势绘制自己的徽标

    在本示例中,我们将深入探讨如何利用Appium和JavaScript技术来实现一个有趣的应用:用多点触摸手势在iOS模拟器上绘制Appium的徽标。Appium是一个自动化测试工具,它允许开发者对原生、混合及移动Web应用进行自动化...

    mixsln:html5 webapp的解决方案

    全局导航生命周期转场效果触摸手势页面滚动有哪些主要的特性?只需用业务代码,即可轻松搭建WebApp。灵活的插件机制,易于二次开发,扩展业务功能。对第三方框架友好,不强奸开发者喜好。为各平台提供统一方案,保证...

    iscroll.js

    在WebAPP开发中,由于浏览器对触摸事件的支持不一致,以及为了实现平滑滚动和复杂的滚动效果,iscroll应运而生。它提供了一个跨平台、高性能的解决方案,使开发者能够轻松地实现上拉加载更多、下拉刷新等功能,这些...

    maketIphone

    8. **Touch事件**:在iOS设备上,开发者需要处理touchstart、touchmove、touchend等触摸事件,以实现滑动、点击等手势操作。 9. **Web App的PWA(渐进式Web App)化**:通过Service Worker、Web App Manifest和...

    Android 自动化测试框架

    它通过向系统发送随机的用户事件流(如按键、触摸、手势等)来测试应用程序的稳定性。Monkey的测试数据和事件是随机生成的,因此无法自定义,这限制了它的灵活性和针对性。 2. **MonkeyRunner** MonkeyRunner相对于...

    minesweeper:一个跨平台跨终端的扫雷游戏

    跨终端-游戏同时支持鼠标,触摸手势,手写笔多种交互模式,所以理论上能在任何桌面端,移动端,智能电视等设备上运行。 多客户端-由于游戏具有上面列出的几种特性,所以游戏除了可以运行在浏览器端之外,还可以通过...

Global site tag (gtag.js) - Google Analytics