2011-10-15 42 views
5

對話框本身只佔用了頁面的大約10%,我想刪除對話框的頁面背景或將對話框的頁面背景變爲透明,以便前一頁仍然可見。如何刪除Jquery Mobile對話框的頁面背景?

這是調用對話框中的JS:

$.mobile.changePage('#popdiv',{transition:'slide', role:'dialog'}); 

,這是我嘗試使用自定義的CSS的股利

<div data-role="page" id="popdiv" data-role="page" data-theme="e">   
    <div data-role="content"> 
    <h1>Congrats!</h1> 
    </div> 
</div> 

,但它似乎並沒有改變任何東西

div#popdiv { 
    background: none; // i also used background-image and color and set it to none 
} 

這就是我如何宣佈css和js

<custom css> 
<jquery mobile css> 
<jquery min.js> 
<phonegap.js> 
<custom.js> 
<jquerymobile.js> 

請幫忙。非常感謝。

回答

0

只需添加到您的CSS

.ui-mobile [data-role="dialog"], .ui-page { 
display:block !important; 
} 

這對我的作品。

+1

消除其他元素。 –

+0

使對話框不是模態的,但好主意! – Olivier

22

接受的答案建議使用第三方對話框爲jQuery Mobile。如果你想使用現有內置對話框,那麼下面的工作:

我的CSS順序是這樣的:

<link rel="stylesheet" href="themeroller/mobile.min.css" /> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile.structure-1.1.0.min.css" /> 
<link rel="stylesheet" href="mobile-custom.min.css" /> 

我自定義的CSS(崗位主題和JQM移動結構CSS):

.ui-dialog-background { 
    opacity: 0.5; 
    display: block !important; 
    -webkit-transition: opacity 0.5s ease-in; 
} 

.ui-dialog-background.pop.in { 
    opacity: 1; 
    -webkit-transition: opacity 0.5s ease-in; 
} 

.ui-dialog { 
    min-height: 100% !important; 
    background: transparent !important; 
} 

和JavaScript時,頁面加載:

$(function() { 
    $('div[data-role="dialog"]').live('pagebeforeshow', function(e, ui) { 
    ui.prevPage.addClass("ui-dialog-background "); 
    }); 

    $('div[data-role="dialog"]').live('pagehide', function(e, ui) { 
    $(".ui-dialog-background ").removeClass("ui-dialog-background "); 
    }); 
}); 

來源:Tom Clarkson

+1

這個工程適用於我在添加.ui-dialog {z-index:3000;}這個解決方案之後。謝謝 –

5

對於jQuery> 1.9,live()被刪除。因此,您需要修改Junto已在上面發佈的JavaScript:

$(document).on('pagebeforeshow', 'div[data-role="dialog"]', function (e, ui) { 
    ui.prevPage.addClass("ui-dialog-background "); 
}); 

$(document).on('pagehide', 'div[data-role="dialog"]', function (e, ui) { 
    $(".ui-dialog-background ").removeClass("ui-dialog-background "); 
});