假设我有一个包含多行的框/表..这些行是可拖动的。
现在我有一个JS,我为iPad实现了touchstart,touchmove,touchend的事件处理程序......基本上他们只是将这些事件映射到鼠标悬停,mousedown,mouseup等相应的鼠标事件
现在这是我的问题;
虽然我能够从表中拖动任何行,但我也希望能够滚动它。当我在屏幕上按任意手指并向下拖动时,它会对该行执行拖动操作(因为我使用event.preventDefault()进行touchmove以防止默认滚动区域。)
现在我明白我不能用一根手指同时进行这两个动作(拖动/滚动)。 所以我想在使用双指时实现/进行滚动操作..(另一种情况,即单指,它应该执行拖动操作)
现在我知道event.touches.length / event.targetTouches.length在屏幕上没有任何手指,我不知道如何使用它来进行滚动动作...就像一个FYI,这个滚动会类似于我们在iPad上获得的固定高度div滚动(溢出:自动),iPad提供了开箱即用的功能..
谢谢。
答案 0 :(得分:0)
您可以稍后触发preventDefault ,也可以选择。 确定您是否首先想要自定义/拖动行为。
这样的事情:(我不知道这个确切的代码是否会起作用,因为我现在无法测试它,这假设你使用jQuery,我不知道手指数量的事件属性,但只是给予你的主意:))
$('#SomeElement').TouchMove(
function(e)
{
if( /* number of fingers equals one */ )
{
e.preventDefault()
//more element-drag code could go here
return;
}
}
);