如何删除Jquery Mobile Dialog的页面背景?

时间:2011-10-15 07:36:25

标签: jquery mobile jquery-mobile dialog

对话框本身只占页面的10%左右,我想删除或将对话框的页面背景变为透明,以便前一页仍然可见。

这是调用对话框的js:

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

这就是div

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

我尝试使用自定义css,但它似乎没有改变任何东西

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>

请帮忙。非常感谢。

4 个答案:

答案 0 :(得分: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 :(得分:5)

对于jQuery&gt; 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 ");
});

答案 2 :(得分:1)

我发现了这个:

https://github.com/jtsage/jquery-mobile-simpledialog

这是一个jquery移动插件,这正是我想要的。 :)

答案 3 :(得分:0)

只需将此添加到您的css

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

这适合我。