首頁 > web前端 > js教程 > 當模態視窗開啟時如何防止正文滾動?

當模態視窗開啟時如何防止正文滾動?

Patricia Arquette
發布: 2024-10-19 18:05:30
原創
865 人瀏覽過

How to Prevent Body Scrolling When a Modal Window Is Open?

在Modal 打開時防止主體滾動

問題陳述:

使用http://twitter.github.com/bootstrap 中的Modal 時,當使用滑鼠滾輪時,主體繼續滾動。我們如何防止這種情況發生?

嘗試的解決方案:

嘗試使用JavaScript 來防止使用$(window).scroll 和$(window).live('scroll') 進行滾動,但沒有成功.

Bootstrap 支援:

Bootstrap 在顯示模態對話框時向主體引入了modal-open 類別。該類別可用於防止透過 CSS 進行滾動。

<code class="css">body.modal-open {
    overflow: hidden;
}</code>
登入後複製

當前情況(2013 年2 月8 日更新):

此解決方案不再適用於Twitter Bootstrap v. 2.3.0,因為模態開放類別未加入主體。

目前解決方法:

當模態顯示和隱藏時,分別使用以下方法向主體新增和刪除模態開放類別以下JavaScript:

<code class="javascript">$("#myModal").on("show", function() {
    $("body").addClass("modal-open");
}).on("hidden", function() {
    $("body").removeClass("modal-open");
});</code>
登入後複製

未來更新(2013 年3 月11 日):

模態開放類預計將在Bootstrap 3.0 中返回,其明確目的是防止滾動:

<code class="css">/* Enable Body overflow hidden */
.modal {
    ...
    /* support for transition.* to transition .bs-modal-backdrop and .bs-modal-content */
    -webkit-transition: opacity .3s ease-out;
    -moz-transition: opacity .3s ease-out;
    -o-transition: opacity .3s ease-out;
    transition: opacity .3s ease-out;
    /* modal container size */
    width: 560px;
    margin: 20px auto;
    padding: 0;
    border: 0;
    border-radius: 6px;
    /* background color; best with border-radius for dialog box effect */
    /* fallback for IE7-8 */
    background-color: #ffffff;
    /* IE9+ */
    background-clip: padding-box;
    /* fade in effect; (speed/timing via CSS animation) */
    opacity: 1;
 }
/* body overflow hidden */
body.modal-open {
    overflow: hidden;
}</code>
登入後複製

以上是當模態視窗開啟時如何防止正文滾動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板