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 毫秒才能获取移动数据?

4

1 回答 1

1

我相信这是某种灵敏度设置。如果用户在设备上移动他或她的手指至少 500 毫秒(在此示例中),您只想注册一个触摸移动(拖动)事件。

这对于区分点击和拖动可能很有用。否则,如果用户在点击按钮时会稍微移动他/她的手指,那么应用程序也会记录一次拖动。由于某些控件同时接受这两个事件,这可能会导致错误行为。

于 2013-03-15T10:53:16.547 回答