0

ユーザーがホーム画面にブックマークできるレスポンシブ サイトを作成しました。タブレットや携帯電話では、ユーザーがページの一番上または一番下にスクロールしたときに、画面が下にスクロールしすぎたり上にスクロールしすぎたりすると、画面が少し表示されない場合に便利です。ページの後ろの灰色の

本文で「preventDefault」を使用するとこれが発生することはわかっていますが、これを行うと、ユーザーはまったくスクロールできなくなります。

これがJavaScriptです:

$(document).ready(function(){
  document.ontouchmove = function(e){e.preventDefault();}
});

html 呼び出しは次のとおりです。

<body ontouchmove="touchMove(event)"> 
4

1 に答える 1

0

イベントをキャプチャし、特定のビューポート/scrollTop の位置にある preventDefault のみを呼び出すことをお勧めします (すぐにコードを追加しようとします)。

これは、現在のドキュメントのスクロールトップの位置を取得するのに役立ちます

function getScrollTop(){
    if(typeof pageYOffset!= 'undefined'){
        //most browsers
        return pageYOffset;
    }
    else{
        var B= document.body; //IE 'quirks'
        var D= document.documentElement; //IE with doctype
        D= (D.clientHeight)? D: B;
        return D.scrollTop;
    }
}

次に、scrollTop が一番上にある場合にのみ preventDefault を呼び出します...

$(document).ready(function(){
      document.ontouchmove = function(e){ if (getScrollTop() != document.scrollTop)      
          {
             e.preventDefault();
          }
     }
});
于 2013-05-27T16:00:39.200 に答える