01-07-2010, 04:05 AM
(30-06-2010, 08:09 PM)keke a écrit : Peut-être manque-t-il juste une animation qui modifierait le html d'un objet du DOM ?Il y a html(), mais je croit ne pas avoir comprit la question...
Par contre c'est peut-être voulu mais il y a 2 distinctions qui s'affichent, je trouve ça bizarre.
Je propose une autre façon de faire la chose : un div distinction existe à la fois (2 pendant la transition). Le code est peut-être plus clair aussi.
function liste_distinction_desc(){
$.getJSON("ajax_liste_distinction_desc.php", {}, function(data){
//index de data
var i = 0,
//recupère le div tableau_dynamique vider de son contenu
$tableau_dynamique = $("#tableau_dynamique").empty(),
//fonction qui affiche le bandeau des distinctions
display = function(){
//cache le premier élément puis le supprime
$tableau_dynamique.children(":first").hide(500, function(){
$(this).remove();
});
//div de la distinction qu'on cache grâce à hide();
var $desc = $('<div>Ligne'+i+ ' : Le sage : ' + data[i].nom_joueur + ' a reçu la distinction ' + data[i].nom_distinction + '</div>').hide();
//ajoute la distinction dans tableau_dynamique
$tableau_dynamique.append($desc);
//puis affiche la distinction avec un effet
$desc.show(500, function(){
//après l'annimation et dans 3 seconde en va afficher la distinction suivante ou faire list_distinction_desc()
setTimeout((++i < data.nb) ? display : liste_distinction_desc, 3000);
});
};
/*si on veux une animation dans la suppression du contenu de tableau_dynamique :
si tableau_dynamique contient un enfant texte ou/et plusieurs balise utilisais ce code et enlever empty au début de la fonction
si tableau_dynamique possède en enfant rien ou une balise et uniquement 1 seul enfant alors supprimer simplement empty au début de la fonction. Le $tableau_dynamique.children(":first").hide(500) de display s'en occupera
$tableau_dynamique.hide(500, function(){
$tableau_dynamique.empty().show();
display();
});*/
display();
});
}
$(function(){
liste_distinction_desc();
});