我已将Hammer.js事件添加到我网站上的元素中。他们都正确地射击,一切都很好,但一个问题引起了我的设计师的注意。他注意到当你尝试用手指在元素上滚动页面时,没有任何反应。不幸的是,这是一个游戏破坏者。
所以我的问题是,在使用Hammer.js时如何保留滚动。
谢谢!
答案 0 :(得分:3)
对于那里寻找解决方案的人来说,这就是我想出来的。
this.$hammer = $('img').hammer();
this.$hammer.on('touchstart', fingerDown)
.on('touchend', fingerUp)
.on('pinch', setScale);
function fingerDown(e) {
var fingersDown = e.originalEvent.touches.length;
if (fingersDown > 1) {
// Lock Scrolling over the zoom element by allowing Hammer.js to fire pinch events.
toggleHammerScrolling(true);
}
}
function fingerUp(e) {
toggleHammerScrolling(false);
}
function toggleHammerScrolling(shouldScroll){
//This is where your implementation may change. Just do .get('pinch').set... on your own hammer object.
this.$hammer.data('hammer').get('pinch').set({
enable: shouldScroll
});
}
function setScale(){
console.log('do pinching stuff here');
}