1

タッチ デバイス上で指が動いたときに関数をトリガーする必要があります。タッチムーブすると、デフォルトのブラウザーのスクロールが無効になり、 JsFiddlee.preventDefault(); の最初のセクションを参照してください。

トラフィックを削減するために、この関数は、ライブラリを使用しているtouchmove間、0.5 秒ごとにのみ呼び出されます。ただし、ブラウザのスクロールは無効になりません。2 番目のセクションを参照してください。_.throttleunderscore

呼び出された関数が調整されている場合でも、タッチ デバイスでブラウザーのスクロールを無効にするにはどうすればよいですか?

セクション 1

$('#test1').on("touchmove", function (ev) {
    var e = ev.originalEvent;
    e.preventDefault();
    $('#test1').text(e.targetTouches[0].pageX, e.targetTouches[0].pageY);
});

第2節

$('#test2').on("touchmove", _.throttle(function (ev) {
  var e = ev.originalEvent;
  e.preventDefault();                      // browser still scrolling - why?
  $('#test2').text(e.targetTouches[0].pageX);
},500));
4

1 に答える 1

1

を削除し、関数の末尾にe.preventDefault()追加します。return false;例:

$('#test1').on("touchmove", function (ev) {
    var e = ev.originalEvent;
    e.preventDefault();
    $('#test1').text(e.targetTouches[0].pageX, e.targetTouches[0].pageY);
});


$('#test2').on("touchmove", _.throttle(function (ev) {
  var e = ev.originalEvent;
  $('#test2').text(e.targetTouches[0].pageX);
  return false;
},500));

働くフィドル

于 2015-12-12T09:48:41.693 に答える