Cómo generar una ventana emergente simple usando jQuery
217
Estoy diseñando una página web. Cuando hacemos clic en el contenido del correo con nombre div, ¿cómo puedo mostrar una ventana emergente que contiene una etiqueta de correo electrónico y un cuadro de texto?
Dependiendo de la situación, es posible que desee cargar el contenido emergente a través de una llamada ajax. Es mejor evitar esto si es posible, ya que puede dar al usuario un retraso más significativo antes de ver el contenido. Aquí hay un par de cambios que querrás hacer si adoptas este enfoque.
Está funcionando, gracias. Pero voy a incluir otro botón de registro de llamadas. cuando se hace clic, debe aparecer el formulario de registro. Para eso incluí la misma función y cambié el nombre de identificadores y clases. El problema es que cuando hago clic en el botón Cerrar del formulario de registro, alterna el formulario de contacto. Necesito ayuda @jason Davis
Rajasekar
1
para eliminar el html que agrega al cerrar, cambie el método de cierre a $ (". close"). live ('click', function () {$ (". pop"). slideFadeToggle (); $ ("# contact") .removeClass ("selected"); $ (". pop"). remove (); // agrega esto ... return false;}); esto corregirá el problema que obtienes cuando haces clic en el enlace más de una vez antes de cerrar la ventana emergente. buena respuesta por cierto, ingenioso y simple ...
Jonx
10
@yahelc Intente hacer clic en "Registrarse" más de una vez consecutivamente, luego haga clic en "Cancelar". Uh-oooohhhh
AVProgrammer
No estoy de acuerdo con la parte del "gran código". Una gran cantidad de contenido está codificado en JavaScript. Sí, todos tenemos javascript en nuestros navegadores en estos días, pero simplemente no es la forma correcta de hacer web. HTML es para contenido, js para "maquillaje". La respuesta de Karim79 es mejor desde mi perspectiva. Incluya su marcado en el HTML donde pertenece, escóndelo y simplemente muéstrelo y tráigalo como emergente. Una solución mucho más limpia que imprimir mucho HTML directamente desde javascript. Usted no tiene que utilizar el jQueryUI si no lo necesita, hay un millón de maneras de poner algún contenido en una ventana emergente
ZolaKt
12
Según el sitio web jQuery , a partir de jQuery 1.7, el método .live () está en desuso. Use .on () para adjuntar controladores de eventos. Los usuarios de versiones anteriores de jQuery deben usar .delegate () en lugar de .live (). . Así que reemplacé .live con .on . Haga clic aquí para ver una versión más genérica del código de Andy . Además, utilicé el enlace CDN para una versión más reciente de jQuery en la página real<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
<div id="dialog" title="Dialog Title">I'm in a dialog</div>
¡Hecho!
Tenga en cuenta que se trata del caso de uso más simple que existe, sugeriría leer la documentación para tener una mejor idea de lo que se puede hacer con ella.
Aparte de Jquery, ¿tengo que incluir algún complemento? @Karim
Rajasekar
8
@Rajasekar: deberá descargar el paquete jQuery UI y, como mínimo, incluir ui.core.js y ui.dialog.js para obtener un Diálogo. Si desea que el diálogo se pueda arrastrar y / o cambiar de tamaño, deberá incluir ui.draggable.js y ui.resizable.js.
karim79
66
Hmm Sería una mejor respuesta con un jsfiddle.
Bryce
23
Yo uso un complemento jQuery llamado ColorBox , es
Muy fácil de usar
ligero
personalizable
el mejor diálogo emergente que he visto para jQuery todavía
Es liviano, admite ventanas emergentes anidadas, orientado a objetos, admite botones dinámicos, receptivos y mucho más. La próxima actualización incluirá envíos de formularios Popup Ajax, etc.
Ventana emergente simple usando html5 y javascript.
html: -
<dialog id="window"><h3>SampleDialog!</h3><p>Lorem ipsum dolor sit amet</p><button id="exit">CloseDialog</button></dialog><button id="show">ShowDialog</button>
Me sale un TypeError: dialog.show is not a functionerror ¿Podría por favor incluir un JSFiddle?
Magiranu
0
Aquí hay una ventana emergente muy simple:
<!DOCTYPE html><html><head><style>#modal {
position:absolute;
background:gray;
padding:8px;}#content {
background:white;
padding:20px;}#close {
position:absolute;
background:url(close.png);
width:24px;
height:27px;
top:-7px;
right:-7px;}</style><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script><script>var modal =(function(){// Generate the HTML and add it to the document
$modal = $('<div id="modal"></div>');
$content = $('<div id="content"></div>');
$close = $('<a id="close" href="#"></a>');
$modal.hide();
$modal.append($content, $close);
$(document).ready(function(){
$('body').append($modal);});
$close.click(function(e){
e.preventDefault();
$modal.hide();
$content.empty();});// Open the modalreturnfunction(content){
$content.html(content);// Center the modal in the viewport
$modal.css({
top:($(window).height()- $modal.outerHeight())/2,
left:($(window).width()- $modal.outerWidth())/2});
$modal.show();};}());// Wait until the DOM has loaded before querying the document
$(document).ready(function(){
$('a#popup').click(function(e){
modal("<p>This is popup's content.</p>");
e.preventDefault();});});</script></head><body><a id='popup' href='#'>Simple popup</a></body></html>
Respuestas:
Primero el CSS: modifica esto como quieras:
Y el JavaScript:
Y finalmente el html:
Aquí hay una demostración e implementación de jsfiddle.
Dependiendo de la situación, es posible que desee cargar el contenido emergente a través de una llamada ajax. Es mejor evitar esto si es posible, ya que puede dar al usuario un retraso más significativo antes de ver el contenido. Aquí hay un par de cambios que querrás hacer si adoptas este enfoque.
HTML se convierte en:
Y la idea general del JavaScript se convierte en:
fuente
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
Echa un vistazo a jQuery UI Dialog . Lo usarías así:
El jQuery:
El marcado:
¡Hecho!
Tenga en cuenta que se trata del caso de uso más simple que existe, sugeriría leer la documentación para tener una mejor idea de lo que se puede hacer con ella.
fuente
Yo uso un complemento jQuery llamado ColorBox , es
fuente
Pruebe Magnific Popup , es sensible y pesa alrededor de 3 KB.
fuente
Visita esta url
Demostraciones de diálogo de IU de Jquery
fuente
Creo que este es un gran tutorial sobre cómo escribir una simple ventana emergente de jquery. Además se ve muy hermoso
fuente
Hay un buen ejemplo simple de exactamente esto, aquí: http://www.queness.com/post/77/simple-jquery-modal-window-tutorial
fuente
Complemento emergente modal extremadamente ligero. POPELT - http://welbour.com/labs/popelt/
Es liviano, admite ventanas emergentes anidadas, orientado a objetos, admite botones dinámicos, receptivos y mucho más. La próxima actualización incluirá envíos de formularios Popup Ajax, etc.
Siéntase libre de usar y twittear comentarios.
fuente
Ventana emergente simple usando html5 y javascript.
html: -
JavaScript: -
fuente
TypeError: dialog.show is not a function
error ¿Podría por favor incluir un JSFiddle?Aquí hay una ventana emergente muy simple:
Se puede encontrar una solución más flexible en este tutorial: http://www.jacklmoore.com/notes/jquery-modal-tutorial/ Aquí está close.png para la muestra.
fuente
SOLO LÓGICA POPUP CSS! PRUEBA HAZLO. ¡FÁCIL! Creo que esto puede ser popular en el futuro
fuente