スクロールを一時的に禁止したい場合。さまざまな方法がありますが、JavaScriptの使用が便利で使いやすいと感じます。
例えば、ローディング中やメニューを開いてる間は禁止したいとか。意外と使いたい場面は多いです。
コード全体
以下のコードを追加し、
禁止したい場面でcantScroll()
、許可したい場面でcanScroll()
を実行するだけです。
///// スクロールの制御 /////
const scrollPrevent = e => {
e.preventDefault();
}
// 禁止
const cantScroll = () => {
document.addEventListener('wheel', scrollPrevent, { passive: false });
document.addEventListener('touchmove', scrollPrevent, { passive: false });
}
// 許可
const canScroll = () => {
document.removeEventListener('wheel', scrollPrevent, { passive: false });
document.removeEventListener('touchmove', scrollPrevent, { passive: false });
}
cantScroll();// スクロール禁止
canScroll();// スクロール許可
wheel
がPC用、touchmove
はタッチデバイス用です。