Búsqueda personalizada

Ventana Modal (Modal Dialog) con jQuery paso a paso

Empecemos con definir los procesos de la ventana.

  • Cuando se quiera mostrar la ventana, el fondo se volverá semi-opaco y resaltará la ventana modal (lo clásico) y su contenido.
  • Mantener la ventana modal en el centro de la pantalla.
  • Permitir cerrar la ventana.
  • Permitir configurar su contenido y dimensión.

modal.css

Especificamos los caracteristicas de diseño. Vamos a usar dos clases 1) .bgtransparent, es para el fondo semi-opaco y 2) .bgmodal, es para la ventana en si.

.bgtransparent{
        position:fixed;
        left:0;
        top:0;
        background-color:#000;
        opacity:0.6;
        filter:alpha(opacity=60);
}

.bgmodal{
        position:fixed;
        font-family:arial;
        font-size:1em;
        border:0.05em solid black;
        overflow:auto;
        background-color:#fff;
}

Ahora la parte de JavaScript que explicaremos en cada línea de código:

modal.js

$(document).ready(function(){
        //parametros principales
       
        var contenidoHTML = ‘<p>Tu contenido HTML aqui</p><button onclick=\”closeModal()\”>Cerrar</button>’;
       
        var ancho = 600;
        var alto = 250;

        $(‘#button’).click(function(){
                // fondo transparente
                // creamos un div nuevo, con dos atributos
                var bgdiv = $(‘<div>’).attr({
                                        className: ‘bgtransparent’,
                                        id: ‘bgtransparent’
                                        });
               
                // agregamos nuevo div a la pagina
                $(‘body’).append(bgdiv);
               
                // obtenemos ancho y alto de la ventana del explorer
                var wscr = $(window).width();
                var hscr = $(window).height();
               
                //establecemos las dimensiones del fondo
                $(‘#bgtransparent’).css(“width”, wscr);
                $(‘#bgtransparent’).css(“height”, hscr);
               
               
                // ventana modal
                // creamos otro div para la ventana modal y dos atributos
                var moddiv = $(‘<div>’).attr({
                                        className: ‘bgmodal’,
                                        id: ‘bgmodal’
                                        });    
               
                // agregamos div a la pagina
                $(‘body’).append(moddiv);

                // agregamos contenido HTML a la ventana modal
                $(‘#bgmodal’).append(contenidoHTML);
               
                // redimensionamos para que se ajuste al centro y mas
                $(window).resize();
        });

        $(window).resize(function(){
                // dimensiones de la ventana del explorer
                var wscr = $(window).width();
                var hscr = $(window).height();

                // estableciendo dimensiones de fondo
                $(‘#bgtransparent’).css(“width”, wscr);
                $(‘#bgtransparent’).css(“height”, hscr);
               
                // estableciendo tamaño de la ventana modal
                $(‘#bgmodal’).css(“width”, ancho+‘px’);
                $(‘#bgmodal’).css(“height”, alto+‘px’);
               
                // obtiendo tamaño de la ventana modal
                var wcnt = $(‘#bgmodal’).width();
                var hcnt = $(‘#bgmodal’).height();
               
                // obtener posicion central
                var mleft = ( wscr - wcnt ) / 2;
                var mtop = ( hscr - hcnt ) / 2;
               
                // estableciendo ventana modal en el centro
                $(‘#bgmodal’).css(“left”, mleft+‘px’);
                $(‘#bgmodal’).css(“top”, mtop+‘px’);
        });
       
 });
       
function closeModal(){
        // removemos divs creados
        $(‘#bgmodal’).remove();
        $(‘#bgtransparent’).remove();
}

Ahora para aplicarlo bastará con lo siguiente:

<html>
<head>

<link type=“text/css” rel=“stylesheet” href=“modal.css” />
<script type=“text/javascript” src=“jquery-1.2.3.min.js”></script>
<script type=“text/javascript” src=“modal.js”></script>

<title>Modal JavaScript</title>
</head>

<body>
        <input type=“button” id=“button” value=“Mostrar Ventana” />
</body>
</html>

fuente:  ribosomatic

Publicado en General, JQuery | 1 Comment

1 Comentario hasta el momento

Suscribirme a éste comentario RSS or TrackBack 'Ventana Modal (Modal Dialog) con jQuery paso a paso'.

  1. Ene 18, 2010 at 10:58

    Gonzalo says,

    Tiene un error, no funciona en IE6 y se arregla muy facil, te dejo la duda para que la resuelvas y la republiques, ya que esto es un repost.

Déjanos tu comentario

Por favor, sea educado sobre el tema. Tu email no será publicado.