Comment générer un popup simple en utilisant jQuery
217
Je conçois une page Web. Lorsque nous cliquons sur le contenu d'un e-mail nommé div, comment puis-je afficher une fenêtre contextuelle contenant une étiquette e-mail et une zone de texte?
J'ai trouvé cette réponse très utile pour des alertes rapides sans toucher au HTML ou CSS existant. Il crée et montre un div en utilisant simplement jQuery de js.
mabi
Réponses:
241
D'abord le CSS - ajustez ceci comme vous le souhaitez:
Selon la situation, vous souhaiterez peut-être charger le contenu contextuel via un appel ajax. Il est préférable d'éviter cela si possible car cela peut donner à l'utilisateur un délai plus important avant de voir le contenu. Voici quelques modifications que vous voudrez apporter si vous adoptez cette approche.
Son fonctionnement, merci. Mais je vais inclure un autre registre d'appels de bouton. quand il est cliqué, le formulaire d'inscription devrait apparaître. Pour cela, j'ai inclus la même fonction et changé le nom des identifiants et des classes. Le problème est que lorsque je clique sur le bouton de fermeture du formulaire d'inscription, il bascule le formulaire de contact. Besoin d'aide @jason Davis
Rajasekar
1
pour supprimer le html que vous ajoutez à la fermeture, changez la méthode close en $ (". close"). live ('click', function () {$ (". pop"). slideFadeToggle (); $ ("# contact") .removeClass ("selected"); $ (". pop"). remove (); // add this ... return false;}); cela corrigera le problème que vous obtenez lorsque vous cliquez sur le lien plusieurs fois avant de fermer la fenêtre contextuelle. belle réponse d'ailleurs, lisse et simple ...
Jonx
10
@yahelc Essayez de cliquer sur "S'inscrire" plusieurs fois de suite, puis cliquez sur "Annuler". Uh-oooohhhh.
AVProgrammer
Je ne suis pas tout à fait d'accord sur la partie "grand code". Beaucoup de contenu est codé en dur en javascript. Oui, nous avons tous du javascript dans nos navigateurs il y a quelques jours, mais ce n'est tout simplement pas la bonne façon de faire du Web. HTML est pour le contenu, js pour "maquillage". La réponse de Karim79 est meilleure de mon point de vue. Incluez votre balisage dans le code HTML où il appartient, cachez-le, affichez-le et affichez-le sous forme de popup. Solution beaucoup plus propre que d'imprimer beaucoup de HTML directement à partir de javascript. Vous n'avez pas besoin d'utiliser jQueryUI si vous n'en avez pas besoin, il y a un million de façons de mettre du contenu dans une popup
ZolaKt
12
Selon le site Web jQuery , à partir de jQuery 1.7, la méthode .live () est déconseillée. Utilisez .on () pour attacher des gestionnaires d'événements. Les utilisateurs d'anciennes versions de jQuery doivent utiliser .delegate () de préférence à .live (). . J'ai donc remplacé .live par .on . Cliquez ici pour voir une version plus générique du code d'Andy . De plus, j'ai utilisé le lien CDN pour une version plus récente de jQuery sur la page actuelle<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>
Terminé!
Gardez à l'esprit qu'il s'agit du cas d'utilisation le plus simple qui soit, je suggère de lire la documentation pour avoir une meilleure idée de ce qui peut être fait avec.
Autre que Jquery si je dois inclure un plugin ?? @Karim
Rajasekar
8
@Rajasekar - Vous devrez télécharger le bundle jQuery UI et au moins inclure ui.core.js et ui.dialog.js pour obtenir un dialogue. Si vous souhaitez que la boîte de dialogue soit déplaçable et / ou redimensionnable, vous devrez inclure ui.draggable.js et ui.resizable.js.
karim79
6
Hmm. Serait une meilleure réponse avec un jsfiddle.
Bryce
23
J'utilise un plugin jQuery appelé ColorBox , c'est
Très simple d'utilisation
poids léger
personnalisable
la plus belle boîte de dialogue contextuelle que j'ai vue pour jQuery
Il est léger, prend en charge les popups imbriqués, orienté objet, prend en charge les boutons dynamiques, réactifs et bien plus encore. La prochaine mise à jour comprendra des soumissions de formulaires Popup Ajax, etc.
N'hésitez pas à utiliser et à tweeter les commentaires.
Fenêtre contextuelle simple en utilisant html5 et 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>
J'ai une TypeError: dialog.show is not a functionerreur. Pourriez-vous s'il vous plaît inclure un JSFiddle?
Magiranu
0
Voici un popup très 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>
Réponses:
D'abord le CSS - ajustez ceci comme vous le souhaitez:
Et le JavaScript:
Et enfin le html:
Voici une démonstration et une implémentation de jsfiddle.
Selon la situation, vous souhaiterez peut-être charger le contenu contextuel via un appel ajax. Il est préférable d'éviter cela si possible car cela peut donner à l'utilisateur un délai plus important avant de voir le contenu. Voici quelques modifications que vous voudrez apporter si vous adoptez cette approche.
Le HTML devient:
Et l'idée générale du JavaScript devient:
la source
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
Consultez la boîte de dialogue jQuery UI . Vous l'utiliseriez comme ceci:
La jQuery:
Le balisage:
Terminé!
Gardez à l'esprit qu'il s'agit du cas d'utilisation le plus simple qui soit, je suggère de lire la documentation pour avoir une meilleure idée de ce qui peut être fait avec.
la source
J'utilise un plugin jQuery appelé ColorBox , c'est
la source
Essayez le Magnific Popup , il est réactif et pèse environ 3 Ko.
la source
Visitez cette URL
Démonstrations de la boîte de dialogue Jquery UI
la source
Je pense que c'est un excellent tutoriel sur l'écriture d'un simple popup jquery. De plus, il est très beau
la source
Il y a un bon et simple exemple d'exactement cela, ici: http://www.queness.com/post/77/simple-jquery-modal-window-tutorial
la source
Plugin popup Modal extrêmement léger. POPELT - http://welbour.com/labs/popelt/
Il est léger, prend en charge les popups imbriqués, orienté objet, prend en charge les boutons dynamiques, réactifs et bien plus encore. La prochaine mise à jour comprendra des soumissions de formulaires Popup Ajax, etc.
N'hésitez pas à utiliser et à tweeter les commentaires.
la source
Fenêtre contextuelle simple en utilisant html5 et javascript.
html: -
JavaScript: -
la source
TypeError: dialog.show is not a function
erreur. Pourriez-vous s'il vous plaît inclure un JSFiddle?Voici un popup très simple:
Une solution plus flexible peut être trouvée dans ce tutoriel: http://www.jacklmoore.com/notes/jquery-modal-tutorial/ Voici close.png pour l'exemple.
la source
SEULE LOGIQUE CSS POPUP! ESSAYEZ-LE. FACILE! Je pense que cela peut être populaire à l'avenir
la source