モーダルが開いているときにスクロールを無効にする方法 - フルページ JS
<p>私がやりたいのは、モーダルが開いているときにページ全体の JavaScript スクロールを無効にすることです。問題は、モーダルを開いてスクロールしようとすると、実際の Web ページであるコンテンツがモーダルの背後に移動するため、これを無効にしたいということです。モーダルを開いたとき、背景は固定されているはずです。 </p>
<pre class="brush:php;toolbar:false;"><div id="fullpage">
<div class="セクション">
<?php include './home-page/home-page-manufacturing-list.php';?>
<button id="turnOff" onclick="document.getElementById('id01').style.display='block'" class="w3-button w3-black">モーダル ボックスを開く</button>
</div>
</div>
<div id="id01" class="w3-modal">
<div class="w3-modal-content">
<div class="w3-container">
<span onclick="closeModal('modal01')" class="w3-button w3-display-topright">×</span>
<div class="コンテナ背景フィルター">
<div class="行">
<div class="col-12">
<h3 class="セクションタイトル"></h3>
</div>
<div class="col-12">
<h5>当社では木工に対する情熱を持っており、それはすべての製造およびインテリア デザイン プロジェクトに反映されています。当社は、機能的でありながら美しいカスタム木製家具、備品、アクセントの作成を専門としています</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<スクリプト>
$(document).ready(function() {
var isModalOpen = false;
// モーダルが開いているときに FullPage.js のスクロールを無効にする
関数 disableFullPageScroll() {
$.fn.fullpage.setAllowScrolling(false);
$.fn.fullpage.setKeyboardScrolling(false);
}
// モーダルが閉じているときに FullPage.js のスクロールを有効にする
関数enableFullPageScroll() {
$.fn.fullpage.setAllowScrolling(true);
$.fn.fullpage.setKeyboardScrolling(true);
}
//モーダルボックスを開く
関数 openModal(modalId) {
document.getElementById(modalId).style.display = 'ブロック';
isModalOpen = true;
disableFullPageScroll();
}
// モーダルボックスを閉じます
関数 closeModal(modalId) {
document.getElementById(modalId).style.display = 'none';
isModalOpen = false;
EnableFullPageScroll();
}
// モーダルを開いたり閉じたりするためのボタンのクリック イベントを処理します
$('#openModalButton').on('click', function() {
openModal('id01'); // 'id01' をモーダルの ID に置き換えます
});
$('#closeModalButton').on('click', function() {
closeModal('id01'); // 'id01' をモーダルの ID に置き換えます
});
// スクロールイベントを処理する
$(ウィンドウ).on('スクロール', 関数(イベント) {
if (isModalOpen) {
イベント.preventDefault();
イベント.stopPropagation();
}
});
});
</script></pre>