2

指でスワイプする効果のあるモバイルデバイス(AndroidとiOSの両方)でWebページを作成したいのですが、//コールバック関数に追加するevent.preventDefault()と、Webページのスクロールバーが無効になります:(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