Ir al contenido principal

Ventana flotante con botón cerrar

Una ventana flotante para tu web que puede incluir un mensaje, aviso, o imagen. Tiene un botón para cerrar con un efecto de desvanecimiento.

Esto será algo muy útil cuando debas dejar algún mensaje o aviso para tus lectores. Se trata de una ventanita, con apariencia similar a las de Windows, que es flotante y tiene la opción de cerrar con un efecto fade utilizando un botón.



Insertarla es muy simple, sólo pega este código en un gadget HTML/Javascript y puedes cambiar algunos valores para personalizar la ventana a tu gusto.

<div id='ventana-flotante'>
   <a class='cerrar' href='javascript:void(0);' onclick='document.getElementById(&apos;ventana-flotante&apos;).className = &apos;oculto&apos;'>x</a>
   <div id='contenedor'>
       <div class='contenido'>
Aquí va el mensaje.
       </div>
   </div>
</div>
<style> #ventana-flotante { width: 360px;  /* Ancho de la ventana */ height: 90px;  /* Alto de la ventana */ background: #ceffad;  /* Color de fondo */ position: fixed; top: 200px; left: 50%; margin-left: -180px; border: 1px solid #adffad;  /* Borde de la ventana */ box-shadow: 0 5px 25px rgba(0,0,0,.1);  /* Sombra */ z-index:999; } #ventana-flotante #contenedor { padding: 25px 10px 10px 10px; } #ventana-flotante .cerrar { float: right; border-bottom: 1px solid #bbb; border-left: 1px solid #bbb; color: #999; background: white; line-height: 17px; text-decoration: none; padding: 0px 14px; font-family: Arial; border-radius: 0 0 0 5px; box-shadow: -1px 1px white; font-size: 18px; -webkit-transition: .3s; -moz-transition: .3s; -o-transition: .3s; -ms-transition: .3s; } #ventana-flotante .cerrar:hover { background: #ff6868; color: white; text-decoration: none; text-shadow: -1px -1px red; border-bottom: 1px solid red; border-left: 1px solid red; } #ventana-flotante #contenedor .contenido { padding: 15px; box-shadow: inset 1px 1px white; background: #deffc4;  /* Fondo del mensaje */ border: 1px solid #9eff9e;  /* Borde del mensaje */ font-size: 20px;  /* Tamaño del texto del mensaje */ color: #555;  /* Color del texto del mensaje */ text-shadow: 1px 1px white; margin: 0 auto; border-radius: 4px; } .oculto {-webkit-transition:1s;-moz-transition:1s;-o-transition:1s;-ms-transition:1s;opacity:0;-ms-opacity:0;-moz-opacity:0;visibility:hidden;} </style>

Con eso ya tendrás todo funcionando, pero hay ciertas cosas a tener en cuenta:
Si cambiaste el ancho de la ventana es posible que esta no se centre en el medio de la página por lo que debes reemplazar el valor de color azul que debe ser exactamente la mitad del valor que pusiste en el ancho de la ventana. En el ejemplo, la ventana tiene 360 pixeles de largo, por lo que puse 180px en el valor resaltado.
Para mover la ventana hacia arriba o hacia abajo cambia el valor en color rojo que es 200 por un valor más alto para que la ventana se posicione más abajo, o un valor más pequeño para llevar la ventana hacia arriba.

Recuerda que en el mensaje puedes incluir además de texto, imágenes, una animación o video, o lo que se te ocurra, ya que es un simple contenedor. Y por cierto, puedes ver una demostración de este truco en este blog de pruebas.

ACTUALIZACIÓN
En Internet Explorer al presionar el botón para cerrar la vantanita, esta no se cierra, por los que deberemos condicionar las cosas para que desaparezca, pero de todos modos no lo hará con efecto fade. Añade esto luego del código anterior:
<!--[if IE]>
<style>
.oculto {display:none}
</style>
<![endif]-->
Invitame un café en cafecito.app

Comentarios

  1. Anónimo7/9/12

    Muy bueno, muchas gracias por compartir. (Lau)

    ResponderEliminar
  2. lo he puesto pero en chrome no se cierra la ventana.. alguna solucion?

    ResponderEliminar
    Respuestas
    1. He visitado tu blog con Chrome y todo esta perfecto, la ventana se cierra aunque no se observa el efecto fade. Quizá sólo fue un error temporal :/ Suerte :)

      Eliminar
  3. Excelente....gracias por compartir...ya lo inclui en mi blog

    www.musicaconvidainternacional.blogspot.com

    Isaac Guerra

    ResponderEliminar
  4. Espectacular es lo que estaba buscando para hacer un formulario de suscripción antes de entrar a la pagina, pero me gustaría mas que se bloquee todo el fondo de la pagina hasta que se cierre la ventana emergente. gracias espero me salga

    ResponderEliminar
  5. Anónimo11/6/13

    Buen aporte, saludos!

    ResponderEliminar
  6. que buena ayuda, me sirvió bastante ...

    ResponderEliminar
  7. Tengo una preguntita.. Que puedo hacer para poner una imagen como fondo de mensaje y no un color cualquiera..??

    ResponderEliminar
    Respuestas
    1. Entre los estilos de la ventana con el id ventana-flotante encontrarás background: #ceffad;, cámbialo por background: url(URL-DE-LA-IMAGEN); Para más información sobre la propiedad background accede a este link.

      Eliminar
  8. Hola, muy bueno, quería preguntarte si sabes como hacer para que la ventana flotante aparezca cuando se cierre el blog. Gracias

    ResponderEliminar
  9. Anónimo25/7/13

    Muchas gracias!! Excelente. Me sirvio

    ResponderEliminar
  10. Hola b uen día quisiera saber como puedo poner una imagen en lugar de texto gracias.

    ResponderEliminar
  11. Anónimo1/11/13

    Muy bueno. Lo quería poner en mi web (www.canedo.eu) pero no consigo que en I.Explorer se cierre. Puse el añadido IE que tú dices. Gracias.

    ResponderEliminar
  12. Muy bueno. Lo probé y funciona muy bien :)

    ResponderEliminar

Publicar un comentario

Más leído

Galería de Imágenes Simple, con Javascript y CSS

Una ventana flotante para tu web que puede incluir un mensaje, aviso, o imagen. Tiene un botón para cerrar con un efecto de desvanecimiento.

¡Hola! Ya extrañaba escribir en mi blog. Vuelvo con esta genial galería de imágenes que es muy fácil de insertar y es súper simple. Sólo es necesario insertar el HTML, y decorarlo un poco con CSS, veamos: <div id="galeria"> <div id="galeria_imagen"> <img id="imgGaleria" src=" URL-IMAGEN-POR-DEFECTO " /></div> <div id="galeria_miniaturas"> <img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src=" URL-IMAGEN-1 " /> <img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src=" URL-IMAGEN-2 " /> <img class="miniatura" onclick="javascript:document.getElementById('imgGaleria').src=this.src;" src=" URL-IMAGEN-3 " /> <img class="miniatura" onclick="javascript:document.getEle

Tabs, menú de contenidos con pestañas. Versión CSS

Una ventana flotante para tu web que puede incluir un mensaje, aviso, o imagen. Tiene un botón para cerrar con un efecto de desvanecimiento.

Seguro conocerás este sistema de pestañas, que nos permite mostrar de manera alternativa distintos contenidos en un mismo espacio. Hay distintas versiones como con jQuery , o utilizando CSS, más específicamente la pseudoclase :target . Aquí veremos como obtener un resultado similar, pero utilizando la pseudoclase :checked. Comencemos con la estructura. <div id="contenedor">     <input id="tab-1" type="radio" name="radio-set" class="tab-selector-1" checked="checked" />     <label for="tab-1" class="tab-label-1"> Pestaña1 </label>         <input id="tab-2" type="radio" name="radio-set" class="tab-selector-2" />     <label for="tab-2" class="tab-label-2"> Pestaña2 </label>         <input id="tab-3" type="radio" name="radio-set" class="tab-selector-3" />    

Efecto biselado con CSS

Una ventana flotante para tu web que puede incluir un mensaje, aviso, o imagen. Tiene un botón para cerrar con un efecto de desvanecimiento.

Utilizando CSS, podemos crear un efecto de biselado para utilizar en botones, mensajes, contenedores o lo que se les ocurra. Veremos 2 formas de aplicar este efecto, una utilizando bordes y otra implementando la propiedad box-shadow . Con los bordes, encontraremos una forma más tradicional que nos permite que los bordes inferior y lateral derecho sean más oscuros simulando relieve. HTML <div class="biselado"> Texto </div> Hola, soy un cuadro con outset. .biselado { background: #2323ff ;   /* Fondo, debe ser más claro que el borde */ border: 5px outset #4444ff ;   /* Grosor del Borde */   /* Color del Borde */ color: white ;   /* Color del texto */ text-align: center ;   /* Alineación del texto */ text-shadow: -1px -1px rgba(0,0,0,.2); } O podemos lograr el efecto contrario, reemplazando la palabra outset que se encuentra antes del color del borde por inset . Hola, soy un cuadro con inset. Veamos ahora una manera más efectva de simul

Botón circular 3D realista con CSS

Una ventana flotante para tu web que puede incluir un mensaje, aviso, o imagen. Tiene un botón para cerrar con un efecto de desvanecimiento.

El secreto está en la propiedad box-shadow . Luego border-radius para darle forma y ya lo obtenemos. See the Pen Botón tridimensional realista. by Lucas Maidana ( @LucasMaidana ) on CodePen . El HTML típico de un botón. <a class='boton' href='URL-DEL-BOTON'></a> Y el CSS. .boton {   background: url( http://www.ashleyjt.net/windows/images/Android.png )  /* Url de la imagen */  no-repeat center center, #62BC0F /* Color del botón */ ; background-size: 60%;  /* Tamaño de la imagen */   height: 200px;   /* Alto del botón */   width: 200px;   /* Ancho del botón */   display: table;   border-radius: 100%;   cursor: pointer;     box-shadow: /* Sombras externa */ inset 0 10px 15px rgba(255,255,255,.35), inset 0 -10px 15px rgba(0,0,0,.05), inset 10px 0 15px rgba(0,0,0,.05), inset -10px 0 15px rgba(0,0,0,.05), /* Sombra interna */ 0 5px 20px rgba(0,0,0,.1); } /* Al presionar */ .boton:active {   box-shadow: inset 0 5px 30px rgba(0,0,0,.2);  /* S

Texto con borde

Una ventana flotante para tu web que puede incluir un mensaje, aviso, o imagen. Tiene un botón para cerrar con un efecto de desvanecimiento.

¿TEXTO CON BORDE? ¿Posible hacerlo sólo con CSS? SI ES POSIBLE NOTA : Esta propiedad no es compatible con todos los navegadores. Se recomienda Chrome o Firefox. Para lograrlo, debemos aplicar la propiedad text-shadow  para lograr muchas sombras del mismo color simulando un sólo borde. A <div class="texto1"> Texto </div> le aplicaremos: .texto1 { color:white;   /* Color del texto */ text-shadow: 1px 1px 0 blue ,                   -1px -1px blue ,                    1px -1px blue ,                   -1px 1px blue ,                    0 1px blue ,                    1px 0 blue ,                   -1px 0 blue ,                    0 -1px blue ; } Puedes cambiar blue por el color que desees. Aquí mas ejemplos. borde .texto2 { color:#AAFFB1; background:#AAFFB1; padding:20px 80px; text-shadow: 1px 1px 0 #2F7235, -1px -1px #2F7235, 1px -1px #2F7235, -1px 1px #2F7235, 0 1px #2F7235, 1px 0 #2F7235, -1px 0 #2F7235, 0 -1px #2F7235; } texto .