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 に答える