3

ここにある Hammer.js を使用しています:
http://eightmedia.github.io/hammer.js/

そして、次のように Hammer オブジェクトをセットアップ/作成します。

var hammertime = Hammer(document.body)
                      .on("pinchin drag swipe", function(event) {
                        var alpha_value = $( "#collide_alpha" ).slider( "option", "value" );
                        var beta_value = $( "#collide_beta" ).slider( "option", "value" );
                        if(alpha_value < 50) {
                          $( "#collide_alpha" ).slider( "value", ~~(+alpha_value+(event.gesture.distance/30)) );
                        } else if(alpha_value <= 100) {
                          $( "#collide_alpha" ).slider( "value", ~~(+alpha_value-(event.gesture.distance/30)) );
                        }
                        if(beta_value < 50) {
                          $( "#collide_beta" ).slider( "value", ~~(+beta_value+(event.gesture.distance/30)) );
                        } else if(beta_value <= 100) {
                          $( "#collide_beta" ).slider( "value", ~~(+beta_value-(event.gesture.distance/30)) );
                        }
                      });

その後、私はこれをやろうとしました:

// Try to disable the mouse movements on computer
hammertime.STOP_MOUSEEVENTS = true;
hammertime.NO_MOUSEEVENTS = true;

しかし、それはうまくいかないので、どうすればコンピュータだけのイベントを無効にできますか? ただし、iPhone と Android ではアクティブのままにします。現時点では、Windows 8 のタッチ スクリーンは気にしないので、タッチ スクリーンが機能しないことは気にしません。

4

2 に答える 2

1

私は Modernizr を使用して、hammer を実行するかどうかを決定します。

     if ( Modernizr.touch )
     {
        $("#cr-stage").hammer().on( "swipeleft swiperight swipeup swipedown doubletap pinchin", gesture );
        $("#cr-stage").hammer().on( "release", releaseGesture );
     }

これは、ユーザー エージェント スニッフィングよりも信頼性が高くなります。

于 2013-05-23T15:55:08.110 に答える