Aller au contenu

Comportement Afficher/Masquer sur des calques


baptimmmsme

Sujets conseillés

Salut à tous,

je suis nouveau sur ce forum qui semble très sympa. Ma question concerne les calques sous Dream : Est-il possible d'afficher ET masquer un calque en cliquant sur un lien/bouton?

Je trouve cette possibilité par les traditionnels OnMouseOver et OnMouseOut (donc deux comportements différents) mais je voudrais pouvoir masquer et afficher un calque par un simple OnClick et apparemment ça pose problème, le premier clic affiche le calque, mais ensuite impossible de le masquer en re-cliquant.

D'avance merci !

Baptiste

Lien vers le commentaire
Partager sur d’autres sites

il faudrait conditionner le résultat du Onclick selon l'état actuel du calque en javascript.

pour l'instant tu pars d'une page où tu sais que le calque est masqué. donc la fonction est évidemment de l'afficher. une fois que c'est fait ça marche pas, c'est normal.

là j'ai pas de source à te donner mais ça doit exister un script pareil avec if et else.

Lien vers le commentaire
Partager sur d’autres sites

Ajoute cette fonction javascript :

function bund(elementid) {
if (document.getElementById(elementid).style.display == 'none') {
document.getElementById(elementid).style.display = 'block';
} else {
document.getElementById(elementid).style.display = 'none';
}
}

Un petit exemple d'utilisation :

<div id="block1">
Bonjour les amis
</div>

<input type="button" onclick="bund('block1');" value="Hop" />

Modifié par Findel
Lien vers le commentaire
Partager sur d’autres sites

merci beaucoup, ça éclaire pas mal ma lanterne :D

- cependant ça ne marche pas lorsque j'affecte à mon calque la propriété suivante:

style="position: absolute; visibility: hidden;"

- de plus j'ai plusieurs calques les uns au dessus des autres, et j'aimerais, par exemple, avoir trois boutons qui affichent/masquent les 3 calques correspondants. Le problème est que si je ne masque pas le calque le plus "haut" (en re-cliquant donc), ceux du dessous restent masqués !

ça me semble difficilement surmontable tout ça, je vais ptêt bien essayer autre chose, à moins que quelqu'un ait une solution ?

Lien vers le commentaire
Partager sur d’autres sites

Bonjour baptimmmsme,

- cependant ça ne marche pas lorsque j'affecte à mon calque la propriété suivante:

style="position: absolute; visibility: hidden;"

C'est normal parce que je code javascript que Findel t'a proposé modifie l'attribut "display" et non "visibility".

En remplaçant ton style par "position: absolute;display:none;" tu devrais t'en sortir.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...