2014-01-13 4 views
2

Я пытаюсь запускать некоторые события JS только при касании (для показа или отсутствия бокового меню в ответном проекте). Я посмотрел на Hammer.js, а затем основы, и вот что я пришел вместе с:Триггер События Javascript только при прикосновении

var $mainPage = $('#main-page'); 
    var drawer = 0; 
    $mainPage.hammer() 
       .on('swiperight', function(e){ 
        if(drawer){ 
        return true; 
        } 
        $mainPage.css({'transform': 'translateX(260px)', '-ms-transform': 'translateX(260px)', '-webkit-transform': 'translateX(260px)'}); 
        drawer = 1; 
       }) 
       .on('swipeleft', function(e){ 
        if(!drawer){ 
        return true; 
        } 
        $mainPage.css({'transform': 'translateX(0)', '-ms-transform': 'translateX(0)', '-webkit-transform': 'translateX(0)'}); 
        drawer = 0; 
       }); 

Все вроде бы хорошо, за исключением, что это не только запуск на сенсорном события, но с событиями мыши тоже. Если я попытаюсь воспроизвести swype с помощью мыши, он тоже работает ... И мне это не нравится :)

Итак, мне было интересно, как я могу это сделать, только стреляя только событиями касания.

ответ

1

Hammer.js всегда будет работать с событиями мыши. В идеале я пытаюсь обнаружить прикосновение к Modernizr или использовать JavaScript, а затем инициализировать код молотка.

if (Modernizr.touch) { 
    //your hammer code 
} 

ИЛИ используя простой javascript.

var supportsTouch = 'ontouchstart' in document.documentElement; 

if(supportsTouch){ 
    // your hammer code 
} 
+0

Это похоже на работу, спасибо :) – Axiol

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