Hammer.js正在阻止iOS Safari上的滚动事件

Hammer.js is blocking scroll events on iOS Safari

本文关键字:Safari 滚动 事件 iOS js Hammer      更新时间:2023-09-26

我已经将Hammer.js事件添加到我网站上的一个元素中。它们都发射正确,一切都很好,但一个问题引起了我的设计师的注意。他注意到,当你尝试用手指在元素上滚动页面时,什么都不会发生。不幸的是,这是一个破坏游戏规则的游戏。

所以我的问题是,当使用Hammer.js.时,如何保持滚动

谢谢!

对于任何正在寻找解决方案的人来说,以下是我的想法。

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');
}