等待获取触摸动作,为什么?

问题描述 投票:1回答:1

我正在研究基于触摸的JS应用程序,我已经研究了Flex和Royal滑块作为示例。我注意到,两个滑块在获得touchmove事件时的行为类似:

var started,touched ;
el.bind('touchstart',function(e){
    started = Number(new Date()) ;
    // Get pageX and pageY etc...
}) ;
el.bind('touchmove',function(e){
    touched = Number(new Date()) ;
    if (started-touched > 500) {
        // Handle touch moves etc...
    }
}) ;

我的JS应用在没有这些功能的情况下可以无缝运行,但是为什么他们需要这样做?为什么他们要等待500毫秒才能获得移动数据?

javascript touch dom-events flexslider
1个回答
1
投票

我相信这是某种敏感性设置。仅当用户在设备上移动手指至少500毫秒(在此示例中)时,您才想注册触摸移动(拖动)事件。

这对于区分点击和拖动很有用。否则,如果用户在单击(例如)按钮时略微移动其手指,则该应用程序还将注册拖动。由于某些控件同时接受这两个事件,因此可能导致错误的行为。

© www.soinside.com 2019 - 2024. All rights reserved.