Salut � tous,
je reviens avec mon histoire de div repositionn�s en cascade.
Suite � renouvellement de contenus via Ajax,ou simple drag and drop, je redimensionne mes div et les reposionne en cascade en fonction de leurs offsetHeight.
Tout se passe bien sauf pour les modules compos�s de gif anim�s.
ca marche imp�cable pour IE, mais le seul cas ou ca foire c'est si le module est compos� de gif anim�s sous Firefox .
OffsetHeight semble impuissant � donner une valeur correcte pour le style.height de sorte que le contenu d'un div ne d�borde pas, et que ma fonction de repositionnment en cascade fonctionne correctement.
le r�sultat c'est un l�ger d�bordement et chevauchement des modules de gifs anim�s sur le module du dessous.
en parlant de la fonction la voici :
Je tiens a repr�ciser que je travaille avec des positions absolute, car j'impl�mente un systeme de drag & drop dans la verticalit� o� les modules sont en colonne et peuvent swapper.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 /** * etalonne le positions des blocks, suite a changement de contenus ou drag de l'un eux (si nécessaire) * * @author chuuuuut!!! * @return néant */ function reset_position() { var a = aElts.length; var temp_h; var current_pos = parseInt(document.getElementById("card_header").offsetTop) + parseInt(document.getElementById("card_header").offsetHeight) + 50; var browser = navigator.appName; for(i = 0;i < a;i++) { // replace le module courant aElts[i].moveTo(margLeft, current_pos); // récupère sa hauteur réelle temp_h = parseInt(document.getElementById(aElts[i].name).offsetHeight); // relève le top du prochain module (hauteur du courant + marge de 10) current_pos += (temp_h + 10); // affecte la taille d'affichage du module courant document.getElementById(aElts[i].name).style.height = temp_h + 'px'; } // réaffecte la hauteur de toute la card + le top du div qui produit la marge du bas document.getElementById("ma_page").style.height = parseInt(current_pos) - 20; document.getElementById("space").style.top = (parseInt(current_pos) + 20) + 'px'; // enfin vérifie si la liste des modules à été modifiée (ordre/efectif des modules) //appelle éventuellement la fonction d'update en base var new_mod_list = implode(',', mod_tab); if(new_mod_list != mod_list) { mod_list = new_mod_list; update_mod_list(); } }
(c'est une IHM, g�n�ratrice de page wap)
donc pr�cis�ment je vous demande si vous avez d�ja �t� confront�s a des offsetHeight farfelus pour des blocs contenant des gifs anim�s?
ou si il y a mieux a faire dans ma fonction pour ce reposionnement en cascade avec des tailles 'affichages en accord avec le contenus des blocs?
par avance merci.
Partager