下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、html5构建触屏网站之touch事件介绍前言一个触屏网站到底和传统的pc端网站有什么区分呢,交互方式的转变首当其冲。例如我们常用的click大事,在触屏设备下是如此无力。手机上的大部分交互都是通过touch来实现的,于是,对于触屏的交互式网站,触摸大事是相当重要的。apple在ios 2.0中引入了触摸大事api,android正迎头赶上这一事实标准,缩小差距。最近一个w3c工作组正合力制定这一触摸大事规范。 规范这里我们介绍几种普及得比较好的触摸大事,你可以在绝大多数现代扫瞄器中来测试这一大事(必需是触屏设备哦):touchstart:触摸开头的时候触发touchmove:手指在屏幕上滑动
2、的时候触发touchend:触摸结束的时候触发而每个触摸大事都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点(用来实现多点触控):touches:当前位于屏幕上的全部手指的列表。targettouches:位于当前dom元素上手指的列表。changedtouches:涉及当前大事手指的列表。每个触摸点由包含了如下触摸信息(常用):identifier:一个数值,唯一标识触摸会话(touch session)中的当前手指。普通为从0开头的流水号(android4.1,uc)target:dom元素,是动作所针对的目标。pagex/pagex/clientx/clienty/screenx
3、/screeny:一个数值,动作在屏幕上发生的位置(page包含滚动距离,client不包含滚动距离,screen则以屏幕为基准)。radiusx/radiusy/rotationangle:画出大约相当于手指外形的椭圆形,分离为椭圆形的两个半径和旋转角度。初步测试扫瞄器不支持,好在功能不常用,欢迎大家反馈。有了这些信息,我们就可以依据这些大事信息为用户提供不同的反馈了。 下面,我将为大家展示一个小demo,用touchmove实现的单指拖动: 复制代码 代码如下: /*单指拖动*/var obj = document.getelementbyid(&39;id&39;);ob
4、j.addeventlistener(&39;touchmove&39;, function(event) / 假如这个元素的位置内惟独一个手指的话if (event.targettouches.length = 1) event.preventdefault();/ 阻挡扫瞄器默认大事,重要var touch = event.targettouches0;/ 把元素放在手指所在的位置obj.style.left = touch.pagex-50 + &39;px&39;obj.style.top = touch.pagey-50 + &39;px&am
5、p;39;, false); 关于a标签四个伪类在触屏设备中的小技巧:我们都知道a标签的四个伪类link,visited,active,hover是专为click大事设计的,所以在触屏网站中尽量不要用法它们。经测试大部分也是不行用的。但是这里有一个关于hover的小技巧,当你点击过一个按钮之后,这个按钮就会向来处于hover的状态,此时你基于这个伪类所设置的css也是起作用的,直到你用手指点击另外一个按钮,hover状态就会转移到另一个按钮。利用这一点,我们可以做出一些小效果。此技巧在大多数扫瞄器中还是可用的。 抱负很丰满,现实很骨感!虽然w3c为多点触控做好了预备,圆满的是鲜有扫瞄器支持多点触控的特性,尤其是android平台上的扫瞄器,也就让上文介绍的手指列表变为了空谈,捕捉两个触摸点会挺直导致触摸失效!好在io
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论