11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous, voici mon problème:

J'utilise la bibliothèque Toolman pour réaliser une liste "sortable" à 2 dimensions verticale et horizontale grâce au drag and drop. Je combine cela à une sauvegarde via des cookies afin de stoker la position des blocs. J'ai ajouté par dessus la possibilité d'ajouter des blocs ou d'en enlever en utilisant les propriétés de visibilités et de display CSS. En fait au chargement de la page je lis le cookies pour connaitre les positions, ainsi que l'état visible ou non des différents blocs.

Le soucis est que quand tous les blocs ne sont pas affichés, quand on déplace ceux visibles, cela crée un petit bug d'affichage (tremblement de l'élément précédent et suivant) dû au fait qu'un bloc est bien présent entre les 2 mais pas afficher.

J'ai essayer de positionner à chaque événement sur la page les blocs non visible en queue de liste afin d'éviter ce problème, mais je n'ai pas encore réussit.

J'ai aussi essayer sans succès lors de la création de liste de ne prendre que ceux affichés, mais la aussi cela ne fonctionne pas.

Si quelqu'un à une idée, ou qui a déjà réalisé quelque chose de semblable alors je suis preneur.

Merci par avance.
Mips a écrit :
Le soucis est que quand tous les blocs ne sont pas affichés, quand on déplace ceux visibles, cela crée un petit bug d'affichage (tremblement de l'élément précédent et suivant) dû au fait qu'un bloc est bien présent entre les 2 mais pas afficher.

Si l'élément en question est en display:none, ça ne devrait pas être le cas.
Soit tu as utilisé une autre technique pour masquer ces éléments, soit il reste un conteneur ou séparateur non masqué, soit le problème vient d'ailleurs.

Mips a écrit :
J'ai aussi essayer sans succès lors de la création de liste de ne prendre que ceux affichés, mais la aussi cela ne fonctionne pas.

Tu crées la liste en JavaScript ou bien tu modifies simplement le DOM avec, au départ, une liste complète et dans un ordre par défaut?

Pour finir, je suppose que tu as lu ceci?
http://blog.tool-man.org/toolman-dhtml-library-not-supported/19

Si tu utilises cette bibliothèque JS, c'est parce que tu fais la maintenance d'un projet ancien?
Modifié par Florent V. (01 Dec 2009 - 13:24)
Salut Florent, désolé pour le retard, mais entre le boulot et la fin d'année, dur d'être partout à la fois Smiley biggrin . En tout cas merci pour tes réponses.

J'utilise bien la propriété "display:none", et je n'ai pas de conteneur ou séparateur non masqué. J'ai l'impression que lors d'un drag and drop de l'élément, il y a donc un remaniement de l'ordre des blocs même ceux non visible, ce qui crée un artéfact de tremblement du fait que le bloc non visible bouge.

J'utilise des versions modifiées, de toolman (même si ce projet a été arrête et intégrer plus ou moins bien dans d'autres bibliothèques) car elle colle mieux, et n'est pas incompatible avec certains scripts qu'utilise l'application cible.

J'ai réalisé une seconde version avec cette fois deux listes bien distinctes: une avec les blocs visibles et l'autre avec ceux masqués, mais j'ai toujours quelques bugs lors des déplacements.
Enfin bon je continus a bosser dessus, je vais bien finir par trouver la solution Smiley fache en 2010!!!!