iPad Safari事件处理程序问题

可以说我有一个包含多行的框/表。这些行是可拖动的。

现在我有一个JS,我已经为touchstart,touchmove,touchend实现了iPad的事件处理程序....基本上,他们只是将这些事件映射到相应的鼠标事件,如mouseover,mousedown,mouseup等

这是我的问题;

虽然我可以从表中拖动任何行,但我也希望能够滚动它。 当我按下屏幕上的任何手指并向下拖动时,它会为该行执行拖动操作(因为我使用touch.motion.preventDefault()来防止默认滚动区域)。

现在我明白了,我不能同时使用单个手指进行动作(拖动/滚动)。所以我想在使用双指时实现/进行滚动动作。(另一种情况,即对于单指,它应该做拖动动作)

现在我知道event.touches.length / event.targetTouches.length在屏幕上不会显示任何手指,我不知道如何使用它来执行滚动操作......就像参考一样,这个滚动类似于我们在iPad上获得了固定高度div滚动(溢出:自动),iPad提供了开箱即用的功能。

谢谢。


稍后您可以触发preventDefault,并可以选择。 确定您是否首先需要定制/拖动行为。

像这样:(我不知道这个确切的代码是否可以工作,因为我现在无法测试它,假设你使用jQuery,并且我不知道手指数量的事件属性,只是给你一个想法:)

$('#SomeElement').TouchMove(
   function(e)
     {
        if( /* number of fingers equals one */ )
        { 
          e.preventDefault()
          //more element-drag code could go here
          return;
        }
     }
);
链接地址: http://www.djcxy.com/p/17119.html

上一篇: Question on iPad Safari Event Handler

下一篇: Collision Avoidance using ogre3 on visual 2010