/ Published in: jQuery
khaoula
Newsticker : affiche chaque élément d'une liste donnée les uns à la suite des autres avec un joli effet de transparence Et le défilement se met en pause lorsque l'on survol l'item.
Expand |
Embed | Plain Text
$(function(){ jQuery.fn.newsTicker = jQuery.fn.newsticker = function(delay){ return this.each(function(){ if (this.nodeName.toLowerCase() != "ul") return; delay = delay || 4500; //délai du défilement self = this; self.items = jQuery("li", self);//tableau de li self.items.not(":eq(0)").hide().end(); //masquer tous les items sauf la premiere /*eq(0) : selectionne l'item dont l'index=0 end() : Mettre fin à l'operation de filtrage (not..)et retourner l'élément self.items à son état antérieur.*/ self.currentitem = 0; //item courant var doTick = function(){ jQuery.newsticker(self); } setInterval(doTick, delay); }).addClass("newsticker").hover(function(){ this.pause = true; // Mettre en pause le défilement si on survol l'item }, function(){ this.pause = false; }); } jQuery.newsticker = function(el){ if (el.pause) return; jQuery(el.items[el.currentitem]).fadeOut("slow", function(){ jQuery(this).hide();// masquer l'item courant // afficher l'item suivant el.currentitem = ++el.currentitem % (el.items.size()); // répéter de nouveau le défilement lorsqu' on a affiché tous les items jQuery(el.items[el.currentitem]).fadeIn("slow"); jQuery(el.items[el.currentitem]) }); } $('#f3_flech_left').click(function(){ var el = self; el.pause = true; // Mettre en pause l'effet de défilement tant que le bouton est cliqué jQuery(el.items[el.currentitem]).fadeOut("slow", function(){ jQuery(this).hide();// Masquer l'item courant // afficher l'item suivant el.currentitem = ++el.currentitem % (el.items.size()); jQuery(el.items[el.currentitem]).fadeIn("slow"); jQuery(el.items[el.currentitem]) }); }); //meme traitement si le bouton droite est cliqué $('#f3_flech_right').click(function(){ var el = self; el.pause = true; jQuery(el.items[el.currentitem]).fadeOut("slow", function(){ jQuery(this).hide(); el.currentitem = ++el.currentitem % (el.items.size()); jQuery(el.items[el.currentitem]).fadeIn("slow"); jQuery(el.items[el.currentitem]) }); }); jQuery("#news").newsTicker(); });
You need to login to post a comment.
