Ver Mensaje Individual
  #11 (permalink)  
Antiguo 22/03/2010, 14:35
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Respuesta: Crear modal box con jquery y efecto fade in/out

Cita:
Iniciado por mayid Ver Mensaje
Esto debe ir dentro de document.ready, junto con las demas asignaciones de click.
Lo probé como me indicaste pero no funcionó :S me sucedia el mismo efecto, se abría y se cerraba al instante.

Encontré una manera alternativa

$('#darken').click(function () {
$('#darken').fadeOut('500');
$('#modalBox').fadeOut('500');
});

Dejo el código completo por si alguien lo quiere usar en FF va bien...

Sin embargo, un detalle, cuando lo abro con IE me muestra el fondo totalmente negro!! no hace la transparencia. ¿Por qué ocurre?

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <title>Modal Box With jQuery</title>
  5. <style type="text/css">
  6. body {
  7.     background:#fff;
  8.     font-family:Verdana, Arial, Helvetica, sans-serif;
  9.     color:white;
  10. }
  11.  
  12. a:link, a:visited, a:active {
  13.     background:red;
  14.     color:white;
  15.     text-decoration:none;
  16.     padding:3px;
  17. }
  18.  
  19. a:hover {
  20.     background:white;
  21.     color:red;
  22. }
  23.  
  24. #darken {
  25.     position:absolute;
  26.     top:0;
  27.     left:0;
  28.     width:100%;
  29.     height:100%;
  30.     display:none;
  31.     z-index:199;
  32.     background:black;
  33.     opacity:.5;
  34.     filter:Alpha(opacity=50); /* Transparency in IE */
  35. }
  36.  
  37. #modalBox {
  38.     position:absolute;
  39.     top:50%;
  40.     left:50%;
  41.     width:400px;
  42.     height:300px;
  43.     margin-left:-200px;
  44.     margin-top:-200px;
  45.     border:#ccc 10px solid;
  46.     padding:10px;
  47.     display:none;
  48.     background:white;
  49.     font-size:12px;
  50.     color:black;
  51.     z-index:200;
  52. }
  53. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
  54. <script type="text/javascript">
  55. $(function(){
  56.     $('#open').click(function(){
  57.         $('#darken').fadeIn('500');
  58.         $('#modalBox').fadeIn('500');
  59.     });
  60.  
  61.     $('#close').click(function(){
  62.         $('#modalBox').fadeOut('500');
  63.         $('#darken').fadeOut('500');
  64.     });
  65.    
  66.     $('#darken').click(function () {
  67.         $('#darken').fadeOut('500');
  68.         $('#modalBox').fadeOut('500');
  69.     });
  70. });
  71. </head>
  72.  
  73.     <a href="#" id="open">Open modalBox</a>
  74.     <div id="modalBox">
  75.         <p>Donec porta magna ac quam. Sed mollis. Nunc ultricies commodo neque. Aliquam dapibus. Nulla gravida interdum tortor. In arcu. Pellentesque eu quam. Donec aliquam iaculis urna. Maecenas vel orci quis arcu vulputate cursus. Quisque lectus. Fusce ultricies orci at quam. Sed ut augue. </p>
  76.         <img src="http://path/to/some/image.jpg" alt="some image" />
  77.         <p><a href="#" id="close">Close modalBox</a></p>
  78.     </div><!-- end modalBox -->
  79.     <div id="darken"></div><!-- end darken -->
  80. </body>
  81.  
  82. </html>

Muchas gracias de antemano!