2011-10-15 19 views
5

El cuadro de diálogo solo ocupa aproximadamente el 10% de la página y quise quitar o convertir el fondo de la página del diálogo en transparente para que la página anterior siga siendo visible.¿Cómo eliminar el fondo de la página para Jquery Mobile Dialog?

Este es el js que llama al diálogo:

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

y este es el div

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

Intenté usar CSS personalizado pero no parece cambiar nada

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

y así es como he declarado css y js

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

Por favor ayuda. muchas gracias.

Respuesta

0

sólo Agregar a su css

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

que funciona para mí.

+1

Messes up other elements. –

+0

hacer que el diálogo no sea modal, ¡pero es una buena idea! – Olivier

22

La respuesta aceptada sugiere el uso de un diálogo de terceros para jQuery Mobile. Si desea utilizar el existente incorporado de diálogo, a continuación, el siguiente trabajo:

Mi orden CSS se ve así:

<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" /> 

Mi CSS personalizado (post tema y JQM estructura móvil 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; 
} 

y JavaScript cuando se carga la página:

$(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 "); 
    }); 
}); 

Fuente: Tom Clarkson

+1

esto funciona para mí después de agregar .ui-dialog {z-index: 3000;} a esta solución. Gracias –

5

Para jQuery> 1.9, se elimina live(). Por lo tanto, usted debe modificar el JavaScript que Junto ha publicado anteriormente para seguir a:

$(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 "); 
}); 
Cuestiones relacionadas