我正在使用草图Web应用程序(使用角度),并且由于使用了一根手指手势进行绘制,因此我希望能够使用两根手指来在草图内容中垂直滚动
当尝试用两根手指滚动时,Safari会退出当前标签页并显示已打开标签页的列表。我可以通过在preventDefault()上调用TouchEvent来取消此行为,如果e.touches.length > 1但是(显然)这不会滚动内容。我当然可以实现在调用e.preventDefault()之后可以动态滚动的解决方案,但这有点棘手。
我想知道是否有人知道更简单/更好的解决方案?
谢谢

最佳答案

最后,我基于touchmovetouchstart事件实现了一个基本解决方案。

let lastTouchY;

element.addEventListener('touchstart', (event) =>
{
  if (event.touches.length === 2)
  {
    event.preventDefault();

    lastTouchY = event.touches[0].clientY;
  }
});

element.addEventListener('touchmove', (event) =>
{
  if (event.touches.length === 2)
  {
    event.preventDefault();

    const delta = lastTouchY - event.touches[0].clientY;
    lastTouchY = event.touches[0].clientY;

    element.scrollTop += delta;
  }
});

JSFiddle
https://jsfiddle.net/r7hkmaeo/84/

10-01 01:46
查看更多