2014-12-02 2 views
1

Я использую Hammer.js для прослушивания горизонтальной панорамирования на элементе. Когда deltaX достиг порога, я хотел бы убить текущий кастрюлю, заставляя «панорамировать» и возобновлять панорамирование при следующем попытке пользователя «panstart».Сила «панорамирования» во время текущей панорамирования с использованием Hammer.js 2.0.4

Чтение через документацию в настоящее время не представляется возможным с библиотекой. Кто-нибудь знает о решении?

var mc = new Hammer.Manager(@option_elm.get(0), 
     recognizers: [ 
      [Hammer.Pan,{direction: Hammer.DIRECTION_HORIZONTAL}] 
     ] 
    ) 

    mc.on('panleft', function(e) { 
     e.kill() // something simple like this...? 
    }) 

ответ

0

У меня была та же проблема. Hammer.js имеет метод сборки с именем stop();. Вы можете использовать его как это внутри функции "penleft" событие: mc.stop();

http://hammerjs.github.io/api/#stop%28[force]%29

Эта сила обыкновение "penend". Hammer.js просто игнорирует все входы. К сожалению, этот метод имеет огромную ошибку. Объект события будет иметь неправильные параметры для всех новых входов: https://github.com/hammerjs/hammer.js/issues/811

Так что я использовал вспомогательную переменную, называемую «isFired». Ваш код может выглядеть примерно так:

var mc = new Hammer.Manager(@option_elm.get(0), 
     recognizers: [ 
      [Hammer.Pan,{direction: Hammer.DIRECTION_HORIZONTAL}] 
     ] 
    ), 
    isFired = false; 

mc.on('panstart', function(e) { 
    isFired = false; 
}); 
mc.on('panleft', function(e) { 
    if (!isFired) { 
     isFired = true; 
     yourCustomCallback(); 
    } 
}); 
mc.on('panend', function(e) { 
    isFired = false; 
}); 

Важно, чтобы сбросить эту переменную false на «penstart» и «panend».

Смежные вопросы