详解iPhone Web开发触摸事件

移动开发 iOS
本文介绍的是iPhone Web开发触摸事件,主要介绍了Web事件的处理,先来看详细内容。

iPhone Web开发触摸事件是本文要介绍的内容,当然,你的 iPhone上是用你的手指来代替鼠标;不再是鼠标点击,而是手指轻敲。还有,你还可以用几个手指头摸啊、敲啊的。所以在 iPhone 上,鼠标事件被触摸事件代替了。这些鼠标事件有:

touchstart

touchend

touchmove

touchcancel(当系统取消了触摸)

如果你订阅了任何这些事件,你的事件监听器就会收到一个事件对象。它有一些重要的属性,比如:

* touches—触摸对象集合,与触摸在屏幕上的手指一对一。触摸对象又有 pageX 和 pageY 属性来包含触摸在页面上的坐标。

* targetTouches—触摸目标集合,不像触摸对象集合,只作用于触摸对象寄存的目标元素,而不是整个页面。

下面这个例子是简单的拖放实现。让我们在黑色背景页画一个框,然后随便拖放下。现在你要做的就是订阅 touchmove 事件,当手指移动的时候来更新框子的位置,像这样:

  1. window.addEventListener('load', function() {    
  2.  var b = document.getElementById('box'),  
  3.      xbox = b.offsetWidth  / 2, // half the box width  
  4.      ybox = b.offsetHeight / 2, // half the box height  
  5.      bbstyle = b.style; // cached access to the style object    
  6.  b.addEventListener('touchmove', function(event) {  
  7.    event.preventDefault(); // the default behaviour is scrolling  
  8.    bstyle.left =  event.targetTouches[0].pageX - xbox + 'px';  
  9.    bstyle.top  =  event.targetTouches[0].pageY - ybox + 'px';  
  10.  }, false);    
  11. }, false); 

touchmove 事件侦听器首先取消了手指移动的默认行为-否则 Safari 会滚动页面的。event.targetTouches 集合中包含了在这个 div 元素上所有手指的数据列表。我们现在只需要关心一个手指,所以我们使用 event.targetTouches[0]。然后, pageX 告诉了手指的 X 坐标。从这个值中减去 div 宽度的一半就是框子的中间了。

小结:详解iPhone Web开发触摸事件的内容介绍完了,希望本文对你有所帮助。

责任编辑:zhaolei 来源: 博客园
相关推荐

2017-01-11 18:44:43

React Nativ触摸事件Android

2013-04-15 15:22:06

2011-08-17 15:10:21

iPhone开发Web视图

2011-07-19 09:46:38

2011-07-19 09:58:36

2009-07-01 09:27:36

触摸屏驱动WinCE

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-07-27 09:33:14

iPhone 网络 Web

2013-04-22 15:40:00

Android开发触摸事件与点击事件区别

2011-08-02 17:58:09

iPhone开发 事件

2011-08-22 12:01:38

iPhone开发文件

2011-08-15 11:37:20

iPhone开发Mask

2016-12-08 22:59:47

触摸事件android

2011-08-16 17:18:44

iPhone开发安全

2011-07-28 10:11:54

iPhone开发 备忘

2011-07-27 11:14:37

iPhone UITableVie

2011-08-12 14:33:06

iPhone缓存文件

2011-07-06 17:48:30

iPhone Xcode 模拟器

2011-07-06 15:59:38

iPad iPhone iOS

2011-07-18 14:39:53

iPhone SDK UIKit
点赞
收藏

51CTO技术栈公众号