/** * kFade * * Auteur : Vincent Asselin * Modifié le : 2010-05-18 * * Notes : * @2009-07-07 * fadeIn / fadeOut a été remplacé par "animate: opacity 1|0" * Il semble que les fades changent le display de l'image. * Donc, ça bustait le layout à la fin de son fadeOut. * * @2010-05-18 * Aucun lien n'est présent sur la toute première * image. */ var kFade= new function() {}; kFade["defaultConfig"]= { timer: 3000, speed: 1000, images: null, type: "auto" }; kFade.CheckConfigs= function() { if (typeof kFade["config"]["timer"] == "undefined") { kFade["config"]["timer"]= kFade["defaultConfig"]["timer"]; } if (typeof kFade["config"]["speed"] == "undefined") { kFade["config"]["speed"]= kFade["defaultConfig"]["speed"]; } if (typeof kFade["config"]["images"] == "undefined") { kFade["config"]["images"]= kFade["defaultConfig"]["images"]; } if (typeof kFade["config"]["type"] == "undefined") { kFade["config"]["type"]= kFade["defaultConfig"]["type"]; } }; kFade.ImagePrecedente= function() { if (kFade["config"]["type"] == "both") { if (kFade["_premierClickSwitch"]) { kFade.DecrementerCompteur(); kFade["_premierClickSwitch"]= false; } } kFade.ActiverFadeParClic(false); }; kFade.ProchaineImage= function() { if (kFade["config"]["type"] == "both") { if (kFade["_premierClickSwitch"]) { kFade.IncrementerCompteur(); kFade.IncrementerCompteur(); kFade["_premierClickSwitch"]= false; } } kFade.ActiverFadeParClic(); }; kFade.Go= function() { $(document).ready(function() { kFade.CheckConfigs(); kFade["_timer"]= null; kFade["_premierClickSwitch"]= true; kFade["_cpt"]= 0; var imagesPreload= null; var images= new Array(); $(kFade.config["images"]).each(function() { imagesPreload= new Image(); imagesPreload.src= this["path"]; images.push(this); }); kFade["_images"]= images; if (kFade["config"]["type"] == "both" || kFade["config"]["type"] == "click") { if (typeof kFade["config"]["prev"] != "undefined" && typeof kFade["config"]["next"] != "undefined") { $("#" + kFade["config"]["prev"]).click(function() { $("img#kFade").stop(true, true); $("div#kFadeTexte").stop(true, true); $("img#kFade").css("display", "inline"); kFade.ImagePrecedente(); }); $("#" + kFade["config"]["next"]).click(function() { $("img#kFade").stop(true, true); $("div#kFadeTexte").stop(true, true); $("img#kFade").css("display", "inline"); kFade.ProchaineImage(); }); } } // On met le lien sur la première image, si nécessaire if (typeof kFade["_images"][kFade["_cpt"]]["args"] != "undefined") { var url= kFade["_images"][kFade["_cpt"]]["args"]; $("img#kFade").css("cursor", "pointer"); $("img#kFade").click(function() { window.location= url; }); } if (kFade["config"]["type"] == "both" || kFade["config"]["type"] == "auto") { kFade["_timer"]= setTimeout("kFade.ActiverFade();", kFade.config["timer"]); } }); }; kFade.DecrementerCompteur= function() { if (kFade["_cpt"] > 0) { kFade["_cpt"]--; } else { kFade["_cpt"]= kFade["_images"].length - 1; } }; kFade.IncrementerCompteur= function() { if (kFade["_cpt"] < kFade["_images"].length - 1) { kFade["_cpt"]++; } else { kFade["_cpt"]= 0; } }; kFade.ReinitialiserParamsImage= function() { $("img#kFade").css("cursor", "default"); $("img#kFade").unbind("click"); }; kFade.ChangerSourceImage= function() { var cpt= kFade["_cpt"]; $("img#kFade").attr("src", kFade["_images"][cpt]["path"]); $("div#kFadeTexte").text((typeof kFade["_images"][cpt]["texte"] != "undefined") ? kFade["_images"][cpt]["texte"] : ""); kFade.ReinitialiserParamsImage(); if (typeof kFade["_images"][cpt]["action"] != "undefined") { var action= kFade["_images"][cpt]["action"]; switch (action) { case "url": { if (typeof kFade["_images"][cpt]["args"] != "undefined") { var url= kFade["_images"][cpt]["args"]; $("img#kFade").css("cursor", "pointer"); $("img#kFade").click(function() { window.location= url; }); } break; } } } }; kFade.ActiverFade= function(prochaineImage) { prochaineImage= (typeof prochaineImage != "undefined") ? prochaineImage : true; $("div#kFadeTexte").fadeOut(kFade.config["speed"]); $("img#kFade").animate({opacity: 0}, kFade.config["speed"], null, function() { if (prochaineImage) { kFade.IncrementerCompteur(); } else { kFade.DecrementerCompteur(); } kFade.ChangerSourceImage(); $("div#kFadeTexte").fadeIn(kFade.config["speed"]); $("img#kFade").animate({opacity: 1}, kFade.config["speed"], null, function() { if (kFade["config"]["type"] == "both" || kFade["config"]["type"] == "auto") { kFade["_timer"]= setTimeout("kFade.ActiverFade()", kFade.config["timer"]); } }); }); }; kFade.ActiverFadeParClic= function(prochaineImage) { prochaineImage= (typeof prochaineImage != "undefined") ? prochaineImage : true; clearTimeout(kFade["_timer"]); if (prochaineImage) { kFade.IncrementerCompteur(); } else { kFade.DecrementerCompteur(); } kFade.ChangerSourceImage(); $("div#kFadeTexte").fadeIn(kFade.config["speed"]); $("img#kFade").animate({opacity: 1}, kFade.config["speed"], null, function() { if (kFade["config"]["type"] == "both" || kFade["config"]["type"] == "auto") { kFade["_timer"]= setTimeout("kFade.ActiverFade()", kFade.config["timer"]); } }); };