Comment faire des info-bulles (avec preview d’image) via jQuery ?
Voici comment faire des info-bulles (tooltip) très facilement grâce à jquery. Avec en plus la possibilité d'y inclure une pré visualisation d'image !
Voici les démo:
Installation
1. On inclu la librairie jQuery dans la page (si ce n'est pas déjà fait) entre les balises HTML <head> et </head>
2. On inclut les fonctions javascript des tooltip (après jQuery)
Les portions de code suivantes sont à ajouter soit entre des balises <script type="text/javascript"> //le code ici </script>, soit dans un fichier .js
/* CONFIG */
xOffset = 10;
yOffset = 30;
// these 2 variable determine popup's distance from the cursor
// you might want to adjust to get the right result
/* END CONFIG */
$("a.screenshot").hover(function(e){
this.t = this.title;
this.title = "";
var c = (this.t != "") ? "<br/>" + this.t : "";
$("body").append("<p id='screenshot'><img src='"+ this.rel +"' alt='url preview' />"+ c +"</p>");
$("#screenshot")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px")
.fadeIn("fast");
},
function(){
this.title = this.t;
$("#screenshot").remove();
});
$("a.screenshot").mousemove(function(e){
$("#screenshot")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px");
});
};
this.imagePreview = function(){
/* CONFIG */
xOffset = 10;
yOffset = 30;
// these 2 variable determine popup's distance from the cursor
// you might want to adjust to get the right result
/* END CONFIG */
$("a.preview").hover(function(e){
this.t = this.title;
this.title = "";
var c = (this.t != "") ? "<br/>" + this.t : "";
$("body").append("<p id='preview'><img src='"+ this.href +"' alt='Image preview' />"+ c +"</p>");
$("#preview")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px")
.fadeIn("fast");
},
function(){
this.title = this.t;
$("#preview").remove();
});
$("a.preview").mousemove(function(e){
$("#preview")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px");
});
};
this.tooltip = function(){
/* CONFIG */
xOffset = 10;
yOffset = 20;
// these 2 variable determine popup's distance from the cursor
// you might want to adjust to get the right result
/* END CONFIG */
$("a.tooltip").hover(function(e){
this.t = this.title;
this.title = "";
$("body").append("<p id='tooltip'>"+ this.t +"</p>");
$("#tooltip")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px")
.fadeIn("fast");
},
function(){
this.title = this.t;
$("#tooltip").remove();
});
$("a.tooltip").mousemove(function(e){
$("#tooltip")
.css("top",(e.pageY - xOffset) + "px")
.css("left",(e.pageX + yOffset) + "px");
});
};
3. Pour activer les tooltip, on inclut le code suivant:
Les portions de code suivantes sont à ajouter soit entre des balises <script type="text/javascript"> //le code ici </script>, soit dans un fichier .js
tooltip();//active les tooltip simple
imagePreview();//active les tooltip image preview
screenshotPreview();//active les tooltip lien avec preview
});
4. Ajouter le code CSS suivant à la fin de votre votre feuille de style
#screenshot{
position:absolute;
border:1px solid #ccc;
background:#333;
padding:5px;
display:none;
color:#fff;
}
/* css pour la tooltip image preview */
#preview{
position:absolute;
border:1px solid #ccc;
background:#333;
padding:5px;
display:none;
color:#fff;
}
/* css pour la tooltip normal */
#tooltip{
position:absolute;
border:1px solid #333;
background:#f7f5d1;
padding:2px 5px;
color:#333;
display:none;
}
5. Et voici à quoi doit ressembler le code HTML de vos liens
Pour les tooltip normaux (en fait il faut donner une classe "tooltip" aux liens et un "title")
Pour les tooltip image preview (en fait il faut donner une classe "preview" aux liens)
Pour les tooltip lien avec preview (en fait il faut donner une classe "tooltip" aux liens et un "rel" contenant l'url de l'image)
Css Globe</a>
Liens
- Demo Tooltip simple
- Demo Tooltip image preview
- Demo Tooltip lien avec preview
- Télécharger l'exemple
- Site officiel
iTypo: thème Wordpress gratuit
Guide pour mieux gérer vos emails via gmail (multicompte, redirection, ...)
Comment réussir vos concours sur vos blogs ?
Brève Wordpress: 40 liens, thèmes, plugins et astuces en tout genre !
Je ne pense pas pouvoir utiliser ça sur ma plate-forme d’ hébergement.
Merci quand mème
Bonjour,
Est-il possible de fixé l’infobulle pour pouvoir par exemple cliquer sur un lien dans celle-ci ?
Merci
Salut !
Bon, moi j’ai adoré ce script… un des plus simples à utiliser. Sauf que ! Ca ne passe plus depuis l’installation d’un plugin tiers (un badge Flikr). jQuery & Prototype, c’est un peu comme Alpah Blondy & Tiken Jah Fakoly… Ils ne s’aiment pas. Mais alors pas du tout ! Et moi, je suis trop « simple » pour comprendre comment utiliser la fonction « no conflict » (histoire de changer l’appel du $ en celui d’autre chose, je crois) de jQuery…
Serait-il possible d’avoir un « tuto-pour-les-nuls » ?
De toutes façons, merci !
Salut,
on peut utiliser ce script sur une liste déroulante ?.
Apres une semaine de galere a essayer de faire marcher un truc dans le genre, bon tuto, ca marche bien, c’est beau. Fantastique.
Est il possible que le » Tooltip lien avec preview » soit active quand on click et non pas au passage de la souris ?
Si oui comment faie svp ?
Le souci avec ton script, c’est que lorsque les photos sont en bordure de page, la preview sort de la page car elle ne se repositionne pas soit à gauche, soit à droite de la miniature, pour être toujours dans la page.
Second souci, c’est que le lien pointe obligatoirement vers l’agrandissement de la photos, et pas vers un autre lien (fiche d’une hôtel par exemple). Il faudrait pouvoir afficher une preview sans être obligé de pointer le lien vers l’agrandissement de la photo.
Donc, peu utilisable en production, même si le rendu est sympa
super ce script, mais quand je le place dans un div en position absolue , l’info bulle se met derrière mon div , comment la placer par dessus.
merci
Très beau script.
Aucu souci avec Firefox et IE8.
Dommage, il semble ne pas être compatible avec IE6 et IE7 (rien ne s’affiche).
Si qq’un a la solution, je suis preneur.
@OLIVIER Il est possible que le lien pointe vers le site que l’on veut en utilisant le tooltip : lien avec previex et en mettant une image dans le lien