모달이 열려 있을 때 스크롤을 비활성화하는 방법 - 전체 페이지 JS
<p>제가 원하는 것은 모달이 열려 있을 때 전체 페이지에 대해 JavaScript 스크롤을 비활성화하는 것입니다. 문제는 모달을 열고 스크롤하려고 하면 콘텐츠가 실제 웹 페이지인 모달 뒤로 이동하므로 이를 비활성화하고 싶다는 것입니다. 모달이 열리면 배경이 고정되어야 합니다. </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="section-title"></h3>
</div>
<div class="col-12">
<h5>저희 회사에는 목공에 대한 열정이 있으며 이는 모든 제작 및 인테리어 디자인 프로젝트에서 드러납니다. 우리는 아름다운 만큼 기능적인 맞춤형 목재 가구, 비품 및 액센트 제작을 전문으로 합니다</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<스크립트>
$(문서).ready(함수() {
var isModalOpen = false;
// 모달이 열려 있을 때 FullPage.js 스크롤을 비활성화합니다.
기능 비활성화FullPageScroll() {
$.fn.fullpage.setAllowScrolling(false);
$.fn.fullpage.setKeyboardScrolling(false);
}
// 모달이 닫힐 때 FullPage.js 스크롤을 활성화합니다.
함수 활성화FullPageScroll() {
$.fn.fullpage.setAllowScrolling(true);
$.fn.fullpage.setKeyboardScrolling(true);
}
//모달박스 열기
함수 openModal(modalId) {
document.getElementById(modalId).style.display = '블록';
isModalOpen = true;
비활성화FullPageScroll();
}
// 모달 상자를 닫습니다.
함수 closeModal(modalId) {
document.getElementById(modalId).style.display = '없음';
isModalOpen = 거짓;
활성화FullPageScroll();
}
// 버튼 클릭 이벤트를 처리하여 모달을 열고 닫습니다.
$('#openModalButton').on('클릭', function() {
openModal('id01'); // 'id01'을 모달 ID로 바꿉니다.
});
$('#closeModalButton').on('클릭', function() {
closeModal('id01'); // 'id01'을 모달의 ID로 바꿉니다.
});
// 스크롤 이벤트 처리
$(window).on('스크롤', function(event) {
if (isModalOpen) {
event.preventDefault();
event.stopPropagation();
}
});
});