我正在开发基于触摸的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应用程序可以无缝工作,但为什么他们需要这样做呢?他们为什么要等500ms才能获得移动数据?
答案 0 :(得分:1)
我认为这是某种敏感度设置。如果用户已将手指移过设备至少500毫秒(在此示例中),您只想注册触摸移动(拖动)事件。
这可以用于区分点击和拖动。否则,如果用户在点击(例如,按钮)时稍微移动他/她的手指,则app也会记录拖动。由于某些控件接受这两个事件,这可能会导致错误的行为。