Aller au contenu

Sujets conseillés

Posté

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

Posté

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.

Posté (modifié)

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
Posté

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 ?

Posté

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

Veuillez vous connecter pour commenter

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



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