Bonjour,

j'essaye de développer un petit fil rss. Les informations défilent dans une petite boite de la hauteur d'une ligne et la phrase se regarde 2 secondes puis monte et sort de la boite laissant la place à la suivante le temps de la montée dure 500ms. j'ai écris le script en prenant en compte le nombre variable de phrase qui serai susceptible d'exister.

Voiçi le code plutôt :

function defilementRss(){
var lvl = $('#filInfoS p').length;
        for (i = 1, c = lvl; i<c; i++) {
            $('#filInfoS')
            .animate({top: '-=0px'},{duration:2000, easing:'linear'})
            .animate({top: '-=20px'},{duration:500, easing:'linear'});
        };

}
$(document).ready(function(){

                setInterval('defilementRss()',12000);
});

J'ai voulu utiliser la fonction setInterval pour que l'animation tourne en chaine mais a moins de régler le temps à 12000 ce qui va bien pour 4 phrases, je n'ai pas trouver de solution pour régler le temps en fonction du nombre de phrase.

J'ai aussi voulu utiliser une boucle while à la place de setInterval, le problème c'est que la boucle tourne a toute vitesse à l'infini sans laisser le temps à l'ensemble du jeu d'animation de finir et ça fait bien sur planter le browser du coup.

Pourriez vous m'éclairer ?

1 réponse


Salut,

Avec la fonction callee je pense que sa marche :)

Voila un tuto qui fait disparaitre un nombre infini d'élément tu à juste à adapter avec le comportement que tu veut :)

Animation infini jQuery

bonne continuation :)