scratch/content/html/fr/blog/2010-06-19-jQuery-popup-the-easy-way.md

59 lines
1.9 KiB
Markdown
Raw Normal View History

2010-06-18 23:27:41 +00:00
-----
isHidden: false
menupriority: 1
kind: article
created_at: 2010-06-19T00:44:50+02:00
title: Comment faire des popups en jQuery rapidement
author_name: Yann Esposito
author_uri: yannesposito.com
tags:
- jQuery
- javascript
- popup
- blog
- web
-----
Sur ce blog, je donne parfois la possibilité de télécharger certaines sources de code.
Dans ce cas, le code est souvent plus large que le `div` qui le contient.
Le texte est alors coupé.
C'est pourquoi, j'utilise une méthode qui permet d'afficher ces sources dans de grandes *popups* en jQuery.
Vous pouvez faire un essai en cliquant le code suivant ; remarquez qu'un bout du code n'est pas visible (après `z-index` normallement) :
<code class="javascript" file="essai.js">
// --- code popup ---
function openPopup() {
$(this).clone(false).appendTo($("#_code"));
$("#_code").show();
}
function closePopup() {
$("#_code").html("");
$("#_code").hide();
}
function initCode() {
$(".code").click(openPopup);
$(".code").css({cursor: "pointer"});
$('body').append('<div id="_code"></div>');
$('#_code').css( { 'text-align': "justify", position: "fixed",
left:0, top:0, width: "100%", height: "100%",
"background-color": "rgba(0, 0, 0, 0.8)", 'z-index':2000, 'padding':'3px'} );
$('#_code').hide();
$('#_code').click(closePopup);
}
// --- end of code popup section ---
</code>
Ce code est celui qui permet d'obtenir cet effet.
Que fait-il ?
Au chargement de la page je crée un `div` grand comme toute la page avec un fond légèrement transparent que je cache.
Je fais bien attention à son `z-index` pour qu'il soit devant tout le reste.
Puis lorsque l'on clique sur un `div` de class `code`,
je recopie le contenu de celui-ci dans le grand `div` que je rend visible.
Très simple mais très efficace.
Pas besoin d'utiliser un plugin `jQuery`.