我试图仅在触摸时触发一些JS事件(用于显示或不显示响应项目的侧边菜单)。我看过Hammer.js,遵循基础知识,这就是我的意思:
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,它也会起作用......我不喜欢它:)
所以,我想知道如何才能做到这一点,只在触摸动作上发射事件。
答案 0 :(得分:1)
Hammer.js将始终使用鼠标事件。理想情况下,我尝试使用Modernizr检测触摸或使用JavaScript然后初始化锤码。
if (Modernizr.touch) {
//your hammer code
}
或使用普通的javascript。
var supportsTouch = 'ontouchstart' in document.documentElement;
if(supportsTouch){
// your hammer code
}