Mise en place d’une popup avec jQuery et jQuery cookie
Un petit script simple mais bien pratique si vous devez afficher un message important sur votre site ou encore faire la promotion d’un nouveau service à l’aide d’une popup élégante, centrée et dont l’affichage chez le client sera contrôlé par la création d’un cookie dédié.
Je vais utiliser pour la mise en place d’un cookie un plugin jQuery très simple d’utilisation et pour le reste quelques lignes de javascript et de CSS. Le but : afficher une popup au centre de l’écran et masquer en même temps le reste du contenu du site. Ensuite, ne plus afficher la popup au visiteur si celui ci l’a expressément fermée.
La fonction javascript :
function jPopup(nom,valeur,contenu,duree,largeur,hauteur){
//pas de cookie : popup
if(!$.cookie(nom)){
$('body').append('
');
$('#inPopUp').css({'width':largeur+'px','height':hauteur+'px','marginTop':'-'+hauteur/2+'px','marginLeft':'-'+largeur/2+'px'});
$('#inPopUp').load(contenu);
$('#framePopUp').css({'opacity':0.5});
$('#framePopUp').fadeIn('fast');
$('#inPopUp').show();
};
//création du cookie à la fermeture de la popup
$('a.closepopup').live('click',function ()
{
$.cookie(nom, valeur, { expires: duree,path: '/' });
$('#framePopUp').remove();
$('#inPopUp').remove();
});
}
$(window).load(function(){
//Appelle de la fonction au chargement de la page
jPopup('monsite.fr','popup','popup.html',7,200,200);
});
Un peu de CSS :
#framePopUp {
background-color:black;
display: none;
height: 1000px;
left: 0;
position: absolute;
top: 0;
width: 100%;
z-index: 1;
}
#inPopUp {
display: none;
left: 50%;
position: absolute;
top: 50%;
z-index: 100;
background-color:white;
}
html > body #inPopUp {
position: fixed;
}
Démo et sources ici : Popup





Par Sebastien
Bonjour.
Visiblement cela ne fonctionne pas sous WordPress. En fait, la pop over s’ouvre tout le temps malgré la présence du cookie.
Par Benoit
Bonjour Sébastien,
Peut-être qu’il faut simplement remplacer les appels « $ » par « jQuery » pour éviter certains conflits dans WordPress. Sinon, je l’ai utiliser sur ce site http://www.olympique-et-lyonnais.com (sous WP également) et ça fonctionne sans problème…
Par mat
Bonjour.
J’ai un soucis avec ce script, j’ai ce message d’erreur
jQuery.cookie is not a function
if(!jQuery.cookie(nom)){
pourtant j’appel bien les jquery..( je pense)
et j’ai fait comme la source..
etrange
merci.
Par Benoit
En local ou en ligne ? Parfois le navigateur (chrome par exemple) a besoin d’être sur un serveur pour executer correctement le javascript ? au moins localhost/ et non C:/fichier
Par bons reduc
Bonjour,
Je souhaite mettre en place sur mon blog un système de pop up pour afficher les bons de réduction de chaque article mais je ne sais pas comment faire. Quelqu’un peut il m aider?
Merci