EDIT : code complet en un seul fichier dans ma 3ème réponse :
http://forum.alsacreations.com/topic-5-61001-1-JS-nagit-plus-sur-un-displaynone-dorigine-en-CSS3.html#p415622
Bonjour et merci d'avance pour toute aide utile à mon pb !
(HTML5 CSS3 Initializr)
J'ouvre et ferme un volet div par un clic sur la barre-titre.
- Lorsque ce volet DIV est ouvert dans le CSS (display et visibility à leur valeur par défaut :'' = display:block et visibility:visible), mon code JS fonctionne : j'ouvre et je ferme sans problème.
- Lorsque ce volet est fermé dans le CSS (div {display:none; visibility:hidden} ), mon code JS n'est pas reconnu : pas de bug dans la console JS, mais aucune action visible ! Comme si le div n'existait pas !
Le code ci-dessus fonctionne correctement, sauf que la fermeture du volet par JS en entrée de page se voit ! (et puis il est plus logique de le présenter fermé par CSS dès le début)
Hélas, l'ajout de la ligne suivante, dans le CSS du DIV qui doit être caché au début, bloque tout ! Et je ne vois pas pourquoi...
(évidemment, avec ce CSS, je supprime la fermeture du volet par JS : dernière ligne du code JS ci-dessus)
Je dois oublier un détail quelque part, mais lequel ???
Merci beaucoup pour toute aide !
Modifié par Gill (27 Mar 2012 - 08:56)
http://forum.alsacreations.com/topic-5-61001-1-JS-nagit-plus-sur-un-displaynone-dorigine-en-CSS3.html#p415622
Bonjour et merci d'avance pour toute aide utile à mon pb !
(HTML5 CSS3 Initializr)
J'ouvre et ferme un volet div par un clic sur la barre-titre.
<article id="index_free">
<a href="#" onclick="return unfold(this);">Cliquer pour ouvrir</a>
<div class="txt">
- Lorsque ce volet DIV est ouvert dans le CSS (display et visibility à leur valeur par défaut :'' = display:block et visibility:visible), mon code JS fonctionne : j'ouvre et je ferme sans problème.
- Lorsque ce volet est fermé dans le CSS (div {display:none; visibility:hidden} ), mon code JS n'est pas reconnu : pas de bug dans la console JS, mais aucune action visible ! Comme si le div n'existait pas !
function unfold(bouton) {
if (bouton.parentNode.getElementsByTagName('div')[0].style.display !== ''){
bouton.parentNode.getElementsByTagName('div')[0].style.display = '';
bouton.parentNode.getElementsByTagName('div')[0].style.visibility = '';
}
else {
bouton.parentNode.getElementsByTagName('div')[0].style.display = 'none';
bouton.parentNode.getElementsByTagName('div')[0].style.visibility = 'hidden';
}
return false;
}
// Je ferme le volet à l'ouverture de la page
unfold( document.getElementById("index_free").firstChild );
Le code ci-dessus fonctionne correctement, sauf que la fermeture du volet par JS en entrée de page se voit ! (et puis il est plus logique de le présenter fermé par CSS dès le début)
Hélas, l'ajout de la ligne suivante, dans le CSS du DIV qui doit être caché au début, bloque tout ! Et je ne vois pas pourquoi...
.txt{ display: none; visibility: hidden; }
(évidemment, avec ce CSS, je supprime la fermeture du volet par JS : dernière ligne du code JS ci-dessus)
Je dois oublier un détail quelque part, mais lequel ???
Merci beaucoup pour toute aide !
Modifié par Gill (27 Mar 2012 - 08:56)