var j = 0;
jQuery.fn.slideView = function(settings) {
settings = jQuery.extend({
easeFunc: "easeInOutExpo", /* <-- easing function names changed in jquery.easing.1.2.js */
easeTime: 950,
diaporama: false,
tpsDiapo: 4500,
cadreTransparent: false
}, settings);
return this.each(function() {
var curImg = 1; /* sur quelle image est-on ? */
var nbImg = 0;
var container = jQuery(this);
container.find(".ldrgif, .ldrdiv").remove(); // removes the preloader
container.removeClass("svw").addClass("stripViewer");
var pictWidth = container.find("li").find("img").width();
var pictHeight = container.find("li").find("img").height();
var pictEls = container.find("li").size();
var stripViewerWidth = pictWidth*pictEls;
container.find("ul").css("width" , stripViewerWidth); //assegnamo la larghezza alla lista UL
container.css("width" , pictWidth);
container.css("height" , pictHeight);
container.append(" « »");
container.each(function(i) {
var idContainer=j;
/* ajout du selecteur d'images */
jQuery(this).after("
<\/ul><\/div>");
jQuery(this).find("li").each(function(n) {
nbImg++;
jQuery("div#stripTransmitter" + j + " ul").append("- "+(n+1)+"<\/a><\/li>");
});
/* gestion des styles */
jQuery("div#stripTransmitter" + j).css("width" , pictWidth);
jQuery("div#stripTransmitter" + j + " a:eq(0)").addClass("current");
/* gestion des boutons précédent / suivant */
jQuery("#prev").bind("click", function() {
imagePrecedente();
});
jQuery("#next").bind("click", function() {
imageSuivante();
});
/* ajout des observateurs sur les sélecteurs d'images */
jQuery("div#stripTransmitter" + j + " a").each(function(z) {
jQuery(this).bind("click", function() {
jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow!
curImg = z+1; /* on met à jour l'image sur laquelle on est */
var cnt = - (pictWidth*z);
jQuery(this).parent().parent().parent().prev().find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc);
return false;
});
});
/* passe à l'image suivante comme son nom l'indique ;) */
function imageSuivante() {
/* il faut aller à la première image si on est sur la dernière */
if (curImg == nbImg)
idImg = 1;
else
idImg = curImg + 1;
nextImg = jQuery("div#stripTransmitter" + idContainer + " a#" + idContainer + "-" + idImg);
nextImg.addClass("current").parent().parent().find("a").not(jQuery(nextImg)).removeClass("current");
var cnt = -(pictWidth * (idImg - 1)); /* déplacement dans la liste en px, en fonction du numéro de l'image */
nextImg.parent().parent().parent().prev().find("ul").animate({
left: cnt
}, settings.easeTime, settings.easeFunc); /* on change l'image */
curImg = idImg; /* on met à jour l'image en cours */
return false;
}
function imagePrecedente() {
/* il faut aller à la dernière image si on est sur la première */
var prevImg;
var idImg;
if(curImg==1)
idImg=nbImg;
else
idImg=curImg-1;
prevImg=jQuery("div#stripTransmitter" + idContainer + " a#"+idContainer+"-"+idImg);
prevImg.addClass("current").parent().parent().find("a").not(jQuery(prevImg)).removeClass("current");
var cnt = - (pictWidth*(idImg-1)); /* déplacement dans la liste en px, en fonction du numéro de l'image */
prevImg.parent().parent().parent().prev().find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc); /* on change l'image */
curImg=idImg; /* on met à jour l'image en cours */
return false;
}
/* si on a demandé un diaporama */
if (settings.diaporama) {
var timer;
/* fonction principale */
function diaporama(){
imageSuivante();
timer = setTimeout(diaporama, settings.tpsDiapo);
}
/* gestion des entrées et sorties dans le cadre des photos */
container.bind("mouseenter", function(){
clearTimeout(timer);
}).bind("mouseleave", function(){
timer = setTimeout(diaporama, settings.tpsDiapo);
});
/* gestion des entrées et sorties dans le selecteur d'images */
jQuery("div#stripTransmitter" + j).bind("mouseenter", function(){
clearTimeout(timer);
}).bind("mouseleave", function(){
timer = setTimeout(diaporama, settings.tpsDiapo);
});
/* mr chronomètre */
timer = setTimeout(diaporama, settings.tpsDiapo);
}
/* si on a demandé un cadre transparent */
if(settings.cadreTransparent) {
/* gestion des entrées et sorties dans le cadre des photos */
container.bind("mouseenter", function(){
var myImg=container.find('ul li:eq('+(curImg-1)+') img'); /* mon element image en cours : pour récupérer les attributs de l'image */
container.append(''+myImg.attr('alt')+'
'+myImg.attr('title')+' €
Voir');
container.find('a.cadreTransparent').animate({
height: "55px"
},400);
}).bind("mouseleave", function(){
container.find('a.cadreTransparent').stop().fadeOut(250, function() {
$(this).remove();
});
});
/* gestion des boutons précédent / suivant */
jQuery("#prev").bind("click", function() {
var myImg=container.find('ul li:eq('+(curImg-1)+') img');
container.find('a.cadreTransparent').attr('href',myImg.attr('longdesc'));
container.find('a.cadreTransparent').html(myImg.attr('alt')+'
'+myImg.attr('title')+' €
Voir');
});
jQuery("#next").bind("click", function() {
var myImg=container.find('ul li:eq('+(curImg-1)+') img');
container.find('a.cadreTransparent').attr('href',myImg.attr('longdesc'));
container.find('a.cadreTransparent').html(myImg.attr('alt')+'
'+myImg.attr('title')+' €
Voir');
});
/* gestion des entrées et sorties dans le selecteur d'images */
/* jQuery("div#stripTransmitter" + j).bind("mouseenter", function(){
}).bind("mouseleave", function(){
});*/
}
});
j++;
});
};