何度も同じ内容を忘れては調べてるので、備忘録として要点をまとめたページを作りました。
要素をドラッグして移動するとき、サイト自体も一緒にスクロールしてしまうことがあります。
こちらがスクロールを無効にするJavaScriptです。
const main = document.querySelector("main")
main.addEventListener("touchmove", noscrool, {passive: false})
function noscrool(event) {
// スクロール禁止
event.preventDefault()
}
こちらから実際の結果を確認できます。
preventDefault()の解説
preventDefault
() は、イベントの持つ既定の動作をキャンセルするメソッドです。
・リンクのクリック
・フォーム送信
・右クリック
・スクロール操作
これらの操作が既定の動作です。
passive: false の解説
「passive」は、addEventListenerメソッドのオプションで passive: trueの場合「preventDefault()」を呼び出さなくなります。
preventDefault() を使う場合は、{passive: false} のオプションをつけます。
ChromeやFirefoxではデフォルトでpassive: trueになっています。
ダブルタップを禁止する場合
ダブルタップでのズーム機能(画面拡大)を無効にする場合は、「”touchmove”」を「”dblclick”」に変更します。
const main = document.querySelector("main")
main.addEventListener("dblclick", nozoom, {passive: false})
function nozoom(event) {
// ダブルクリック禁止
event.preventDefault()
}