menus en DHTML : position ni absolute ni relative...?

menus en DHTML : position ni absolute ni relative...? - Programmation

Marsh Posté le 16-02-2002 à 16:40:44    

je fait un menu en dhtml, je veut modifier un truc qui se trouve dans une cellule à gauche d'un tableau.
le pb c'est que je veut pas que la pos soit absolute, pour que ca passe dans tt les résolutions.
 
si je met la pos en relative, ben les different trucs qui sont hidden ou visible sont pas aau me^me endroit...
 
 
alors coment faire ?

 

[jfdsdjhfuetppo]--Message édité par mr_mat--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 16-02-2002 à 16:40:44   

Reply

Marsh Posté le 16-02-2002 à 19:16:41    

:sweat:

Reply

Marsh Posté le 16-02-2002 à 19:21:21    

précise, fais un dessin, ...
 
une image gif transparente et resizée ne règle pas le problème ?

Reply

Marsh Posté le 16-02-2002 à 19:22:12    

Si tu veux des menus qui s'affichent à des endroits fixes pour toutes les résolutions je ne peux pas t'aider (mais ça m'interesse aussi ;))
 
Sinon, une alternative peut être de faire un petit script qui détecte la position de la souris et qui donnerait la position au script d'affichage, qui lui afficherait alors le menu à la position de la souris. C'est plus brouillon et moins précis mais bon...

Reply

Marsh Posté le 17-02-2002 à 14:01:12    

avec le source ca ira mieux :)
http://mrmat.multimania.com/essai.html
 
comme vous le verez, le texte a droite s'affiche pas comme il faut, mais je peut pas mettre les positions en absolute car sinon c'est pas bon selon la résolution.
 
PS faites pas attention au contenu c'est débile c'est pour un TP...

 

[jfdsdjhfuetppo]--Message édité par mr_mat--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 17-02-2002 à 18:58:00    

:cry:

Reply

Marsh Posté le 17-02-2002 à 19:11:10    

je comprends toujours pas ... tu veux que tous les textes s'affichent à la même hauteur ?

Reply

Marsh Posté le 17-02-2002 à 23:11:18    

tt a fait !!
mais si je met la pos en absolute ca va chier dans certaines résolutions :(

Reply

Marsh Posté le 17-02-2002 à 23:27:40    

tu as plusieurs solutions :
 
* positionnement absolu : pas compliqué, au chargement de la page, tu appelles une routine qui choppe la taille de la fenêtre (document.body.clientWidth et .clientHeight) et positionne les layers où tu veux. il faudra également appeler la routine à chaque resize.
 
* ne faire qu'une balise que tu remplis à chaque click sur le menu : ie un <div id='mabalise'></div>, et à chaque click sur le menu tu changes son contenu dans le onclick :  
<a href='#' onclick="mabalise.innerHTML = 'texte1'">menu 1</a>
<a href='#' onclick="mabalise.innerHTML = 'texte2 ...'">menu 2</a>
 
* le plus simple vu l'agencement actuel de ta page : à chaque entrée du menu, un <div> correspondant. tous les div ont leur propriété css display à 'none' ce qui fait qu'ils sont cachés et ne prennent aucune place dans la page. à chaque click sur un menu, tu changes le 'display' du div associé à 'block', et tu mets tous les autres à 'none'. ça c'est la manière bourrin, le mieux est de garder dans une variable le dernier menu ouvert.
 
ie tu as trois textes à droite, donc trois divs :
 
<div id='texte1'>texte 1</div>
<div id='texte2'>texte 2</div>
<div id='texte3'>texte 3</div>
 
une variable qui garde l'état du dernier menu affiché :
 
<script>
var lastOpen = null;
 
// une fonction qui switche un menu :
function switchText(n)
{
  if (lastOpen) lastOpen.style.display = 'none';
  lastOpen = n;
  lastOpen.style.display = 'block'
}
</script>
 
appelée dans le menu :
 
<a href='#' onclick='switchText(texte1)'>affichage du texte 1</a>

Reply

Marsh Posté le 17-02-2002 à 23:32:26    

merci beaucoup, je vais faire comme ca :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed