国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

如何在模態(tài)框打開時禁用滾動 - Full Page JS
P粉090087228
P粉090087228 2023-08-18 00:15:20
0
1
736
<p>我想要做的是,當(dāng)模態(tài)框打開時,禁用整個頁面的JavaScript滾動。問題是,當(dāng)我打開模態(tài)框并嘗試滾動時,它確實移動了模態(tài)框后面的內(nèi)容,即實際的網(wǎng)頁,我想禁用它。當(dāng)模態(tài)框打開時,背景應(yīng)該被凍結(jié)。</p> <pre class="brush:php;toolbar:false;"><div id="fullpage"> <div class="section"> <?php include './home-page/home-page-manufacturing-list.php';?> <button id="turnOff" onclick="document.getElementById('id01').style.display='block'" class="w3-button w3-black">打開模態(tài)框</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">&times;</span> <div class="container background-filter"> <div class="row"> <div class="col-12"> <h3 class="section-title"></h3> </div> <div class="col-12"> <h5>在我們的公司,我們對木工有著激情,這在我們所有的制造和室內(nèi)設(shè)計項目中都能體現(xiàn)出來。我們擅長制作定制木制家具、裝置和裝飾品,它們不僅功能強大,而且美觀</h5> </div> </div> </div> </div> </div> </div> <script> $(document).ready(function() { var isModalOpen = false; // 當(dāng)模態(tài)框打開時禁用FullPage.js滾動 function disableFullPageScroll() { $.fn.fullpage.setAllowScrolling(false); $.fn.fullpage.setKeyboardScrolling(false); } // 當(dāng)模態(tài)框關(guān)閉時啟用FullPage.js滾動 function enableFullPageScroll() { $.fn.fullpage.setAllowScrolling(true); $.fn.fullpage.setKeyboardScrolling(true); } // 打開模態(tài)框 function openModal(modalId) { document.getElementById(modalId).style.display = 'block'; isModalOpen = true; disableFullPageScroll(); } // 關(guān)閉模態(tài)框 function closeModal(modalId) { document.getElementById(modalId).style.display = 'none'; isModalOpen = false; enableFullPageScroll(); } // 處理按鈕點擊事件以打開和關(guān)閉模態(tài)框 $('#openModalButton').on('click', function() { openModal('id01'); // 將 'id01' 替換為您的模態(tài)框的ID }); $('#closeModalButton').on('click', function() { closeModal('id01'); // 將 'id01' 替換為您的模態(tài)框的ID }); // 處理滾動事件 $(window).on('scroll', function(event) { if (isModalOpen) { event.preventDefault(); event.stopPropagation(); } }); }); </script></pre>
P粉090087228
P粉090087228

全部回復(fù)(1)
P粉805535434

您提供的代碼在打開模態(tài)框時禁用滾動似乎是正確的。然而,有幾個可能導(dǎo)致問題的原因:

  1. 打開模態(tài)框的按鈕沒有使用您在腳本中定義的openModal函數(shù)。相反,它直接操作模態(tài)框的樣式。這意味著isModalOpen變量沒有被設(shè)置為true,disableFullPageScroll函數(shù)也沒有被調(diào)用。要解決這個問題,您應(yīng)該在按鈕被點擊時使用openModal函數(shù):
<button id="openModalButton" class="w3-button w3-black">打開模態(tài)框</button>
  1. 關(guān)閉模態(tài)框的標(biāo)簽也沒有使用closeModal函數(shù)。應(yīng)該像這樣:
<span id="closeModalButton" class="w3-button w3-display-topright">&times;</span>
  1. closeModal函數(shù)沒有在全局作用域中定義,但它被從HTML中調(diào)用。這可能會導(dǎo)致錯誤。要解決這個問題,您應(yīng)該在全局作用域中定義closeModal函數(shù):
window.closeModal = closeModal;
  1. disableFullPageScrollenableFullPageScroll函數(shù)使用FullPage.js的方法來禁用和啟用滾動。如果您沒有使用FullPage.js,或者它沒有正確初始化,這些方法將不起作用。您應(yīng)該檢查FullPage.js是否正確包含和初始化在您的項目中。

  2. 滾動事件處理程序中的preventDefaultstopPropagation方法可能不足以阻止所有情況下的滾動。在模態(tài)框打開時,您可能還需要將

    overflow樣式設(shè)置為hidden,并在模態(tài)框關(guān)閉時將其重置為auto
function disableFullPageScroll() {
    $.fn.fullpage.setAllowScrolling(false);
    $.fn.fullpage.setKeyboardScrolling(false);
    document.body.style.overflow = 'hidden';
}

function enableFullPageScroll() {
    $.fn.fullpage.setAllowScrolling(true);
    $.fn.fullpage.setKeyboardScrolling(true);
    document.body.style.overflow = 'auto';
}

請嘗試這些建議,并告訴我是否解決了您的問題。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板