2

我想在移动设备(Android和iOS)上制作一个带有手指滑动效果的网页,但是当我添加//回调函数event.preventDefault()时,网页的滚动条被禁用,这是一场灾难:(ontouchstartontouchmoveontouchend

我为此做了一个丑陋的黑客攻击,scrollTop以便可以滚动页面:

element.ontouchmove = function(event) {
    event.preventDefault();
    var oldScrollTop = document.body.scrollTop;
    var dist = final_y - start_y // here start_y is pageY from touchstart and final_y is current pageY
    document.body.scrollTop = oldScrollTop - dist > 0 ? oldScrollTop - dist : 0;
    //...
}

它现在有效,但我仍然想知道:

  1. 对此还有其他更好的解决方案吗?
  2. 为什么我们必须在回调函数中使用“preventDefault()”?我们阻止了什么?

谢谢。

4

0 回答 0