Bonjour tout le monde,
J'ai une structure dans ce style :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <div id="dragging-container"> <div id="selectframe"></div> <div list></div> </div>
Au départ selectframe n'est pas visible, puis des scripts lors des doubles clics agissent sur ses propriétés, pour dessiner un rectangle de sélection sur la page, à l'intérieur du dragging-container.
div list est un ensemble d'éléments générés par Angular JS.
Les éléments dont les coordonnées sont à l'intérieur du rectangle matérialisé par selectframe sont bougés à mesure que selectframe subit un glissé de souris.
J'espère que jusque là c'est clair, car j'arrive à ma question.
Après chargement de la page, cette affaire-là fonctionne très bien, mais une fois que les propriétés de style de selectframe ont été modifiées par les scripts, son positionnement "absolute" ne se fait plus par rapport au dragging-container comme il devrait, mais, selon les positions des éléments à l'intérieur, souvent l'abscisse est correcte mais l'ordonnée est positionnée par rapport au premier élément de div list. Et il se trouve que document.getElementById("selectframe").offsetParent est nul à ce moment, ce qui explique que position=absolute ne fonctionne pas correctement, puisque je devrais avoir offsetParent = dragging-container (syntaxe simplifiée).
Ma première idée avait été position="fixed", ce qui fonctionne tant que le haut de la page est affiché, mais une fois qu'on défile, bien entendu, tout faux.
Quelqu'un aurait-il une idée de comment m'y prendre pour que mon positionnement reste référé non au premier élément à l'intérieur, mais bien toujours référé au dragging-container ?
Partager