对话框本身只占页面的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>
请帮忙。非常感谢。
答案 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)
答案 3 :(得分:0)
只需将此添加到您的css
即可.ui-mobile [data-role="dialog"], .ui-page {
display:block !important;
}
这适合我。