iphoneでスクロールを固定して解除する方法【javascritptのコード】

カテゴリー︎: iPhone (iOS)・【JavaScript】

これまで、いろいろと

iPhoneでスクロールを固定して解除する方法をいろいろと試ししてきたが

うまくいかなかった。。。

特に、やっかいなのはブラウザで見るスマホ版はうまくいくが

iPhone実機でスクロールすると、どうしても背景が動いてしまうこと!

なぜだ??

このコードも試したが、ダメだ。

  document.documentElement.style.overflow = 'hidden';
  document.body.style.overflow = 'hidden';

PCで見ると確かに機能しているが、実機iPhoneでは

スクロールができたり、できなかったり不安定なのが、またやっかいである。

しかし!やっと解決した!

このコードはiPhone実機で、ちゃんとスクロールを制御することができた!!


    //iPhoneでスクロールを許可する
    document.removeEventListener('touchmove', preventDefault, {passive: false});


    //iPhoneでスクロールを禁止する
    document.addEventListener('touchmove', preventDefault, {passive: false});


// スクロール禁止用関数
function preventDefault(e) {
  e.preventDefault();
}

このコードは、preventDefaultという名前の関数を定義して

引数として渡されたイベントオブジェクトのpreventDefaultメソッドを呼び出し

touchmoveイベントが発生した場合、ブラウザはスクロールを実行するため

preventDefault関数が呼び出されることでスクロールを禁止することができるということ。

PAGE TOP