18-04-2009, 09:56 PM
Bon, voila, j'y suis presque, j'ai un soucis.
Voici le code complet:
sa fonctionne, il y a juste un petit bug. Quand on clique, l'info bulle ce freeze bien, seulement la zone de la bulle semble incorrect, lorsque je descente pour parcourir l'infobulle, elle disparait alors que ma souris de devrait pas l'avoir quitté.
Voila, ce code est presque finis, il reste la touche finale.
Voici le code complet:
(function($) {
$.valmetips = {
freeze: false,
//Affichage de l'info-bulle
over_tips: function(ths, message, title) {
var moveHandler = function(e) {
//Div visible (e.PageX ou sourisLeft)
$("div#tips").css({visibility: "visible", width: "400px",height: "400px",
top: (sourisTop+20)+"px", left: (sourisLeft+30)+"px"});
};
//On vide les piles
var outHandler = function() {
jQuery(ths)
.unbind('mousemove',moveHandler)
.unbind('mouseout',outHandler);
};
//je pointe sur le lien où est la souris
if (!$.valmetips.freeze)
{
//Injection du message
$("div#tips").append(title+message);
jQuery(ths)
//à chaque fois que la sourie bouge, j'exécute moveHandler
.bind('mousemove', moveHandler)
//quand je quitte le lien, j'exécute outHandler qui va enlever les actions
.bind('mouseout',outHandler);
}
}
,
cache_tips: function() {
if (!$.valmetips.freeze)
{
//On vide la div.
$("div#tips").empty();
//On la rend invisible
$("div#tips").css({visibility: "hidden"});
}
}
,
click_tips: function(ths, message, title) {
//on zappe tout.
jQuery(ths)
.unbind();
//On zappe la div
$("div#tips").empty();
//On ajoute le contenu
$("div#tips").append(title+message);
//on affiche la div
$("div#tips").css({visibility: "visible", width: "400px",height: "400px",
top: (sourisTop)+"px", left: (sourisLeft)+"px"});
//On active le freeze
$.valmetips.freeze = true;
//sortie de l'infobulle
$("div#tips").mouseout(function () {
//On vide la div.
$("div#tips").empty();
//On la rend invisible
$("div#tips").css({visibility: "hidden"});
//On désactive le freeze
$.valmetips.freeze = false;
}
);
}
}
//Accès rapide
over_tips = function(message, title) {
$.valmetips.over_tips(this, message, title);
}
cache_tips = function() {
$.valmetips.cache_tips();
}
click_tips = function(message, title) {
$.valmetips.click_tips(this, message, title);
}
})(jQuery);
sa fonctionne, il y a juste un petit bug. Quand on clique, l'info bulle ce freeze bien, seulement la zone de la bulle semble incorrect, lorsque je descente pour parcourir l'infobulle, elle disparait alors que ma souris de devrait pas l'avoir quitté.
Voila, ce code est presque finis, il reste la touche finale.