2010-09-22 11 views
5


Tengo un div que está creando a través de ajax, me gustaría deshabilitar todo el cuerpo una vez que el div es emergente y hasta, a menos que el div esté cerrado.
Esto es posible en jquery. Por favor, hágamelo saber su sugerenciacómo deshabilitar todo el cuerpo que no sea un div

Gracias,
Praveen Jayapal

+1

Suena sospechosamente como un lightbox. cf. http://leandrovieira.com/projects/jquery/lightbox/ – annakata

Respuesta

9

que desea eliminar o esconder el cuerpo? Técnicamente, esto no debería ser posible porque necesitas agregar el div al cuerpo para poder verlo. Lo que podrías hacer es crear una capa de "máscara" que cubra TODO el cuerpo, luego usa el índice z para tu div para mostrarlo en la parte superior del cuerpo.

Algo así como:

http://www.queness.com/post/77/simple-jquery-modal-window-tutorial

podría ayudar!

Para ocultar por completo la página de todo lo que tendría que hacer es cambiar la línea 21:

$('#mask').fadeTo("slow",0.8);

en el javascript:

$('#mask').fadeTo("slow",1);

y el color de la máscara La línea 7 de CSS se puede cambiar a lo que usted desee también:

background-color: #000;

+0

exactamente esto es lo que necesito :) .. gracias amigo – praveenjayapal

6

Que debe hacer el truco ..

HTML:

<body> 
    <div id="overlay"> 
     this is above the body! 
    </div> 
<!--...rest...--> 
</body> 

CSS:

#overlay { 
    background-color: #ccc; /*or semitransparent image*/ 
    display: none; 
    height: 100%; 
    width: 100%; 
    position: absolute; 
    top: 0; 
    left: 0; 
    z-index: 100; 
} 
#ajax-div { 
    z-index: 200; /*important, that it is above the overlay*/ 
} 

Javascript:

<script type="text/javascript"> 
$(document).ready(function() { 
    //your ajax-call 
    $.ajax({ 
     //on success 
     success: function() { 
      //your logic your showing the ajax-div 
      $('#overlay').show(); //or fadeIn() 
     } 
    }) 

    //use live to catch the close-click of the later added ajax-div 
    $('#ajax-div a#close').live('click', function() { 
     //close the ajax-div 
     $(this).parent().hide(); 
     //close the overlay 
     $('#overlay').hide(); //or, again, fadeOut() 
    }); 
}); 
</script> 
+0

A por esfuerzo allí Tim! Bien en ti. – roborourke

1

OK ... la mejor idea es usar jquey.ui si usa jquery.

http://jqueryui.com/demos/dialog/#modal

Se puede elegir el tema y descarga únicos componentes que le gustan ..

Luego solo incluya js y css una carpeta img de lugar y llame al cuadro de diálogo. Es tranquilo y fácil ...

Cuestiones relacionadas