我想在移动设备(Android和iOS)上制作一个带有手指滑动效果的网页,但是当我添加//回调函数event.preventDefault()
时,网页的滚动条被禁用,这是一场灾难:(ontouchstart
ontouchmove
ontouchend
我为此做了一个丑陋的黑客攻击,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;
//...
}
它现在有效,但我仍然想知道:
- 对此还有其他更好的解决方案吗?
- 为什么我们必须在回调函数中使用“preventDefault()”?我们阻止了什么?
谢谢。