En fait, c'est tout simple (quand on sait faire !).
1/ enlève les id="texte" et garde les class="texte" (qui existent déjà) :
1 2 3 4 5
| <span class="bouton" id="bouton_texte" onclick="afficher_cacher('texte');">Afficher le texte</span>
<text transform="matrix(1 0 0 1 148.251 72.3003)"> <tspan class="texte" x="-5.6" y="0">Lauderdale</tspan></text>
<text transform="matrix(1 0 0 1 226.5005 80.2905)"> <tspan class="texte" x="-4" y="0">Limeston</tspan></text>
<text transform="matrix(1 0 0 1 279.4019 87.4546)"> <tspan class="texte" x="-5" y="0">Madison</tspan></text> |
2/ le JavaScript :
1 2 3 4 5 6 7 8 9 10 11 12
| function afficher_cacher(e)
{
var elts = document.getElementsByClassName(e);
var nbre_elts = elts.length;
for( var i=0; i<nbre_elts; i++)
{
elts[i].style.visibility = (elts[i].style.visibility=="hidden")? "visible":"hidden";
}
}
// onload
afficher_cacher('texte'); |
3/ variante, avec Array.filter :
1 2 3 4 5 6 7 8
| function afficher_cacher(e)
{
Array.filter( document.getElementsByClassName(e), function(elem){
return elem.style.visibility = (elem.style.visibility=="hidden")? "visible":"hidden";
});
}
// onload
afficher_cacher('texte'); |
4/ Pour modifier le texte du bouton, ajouter :
document.getElementById('bouton_texte').innerHTML = (document.getElementById('bouton_texte').innerHTML == "Afficher le texte")? "Masquer le texte":"Afficher le texte";
Par contre, comme la fonction est appelée aussi sur le onload, il faut modifier le HTML :
<span class="bouton" id="bouton_texte" onclick="javascript:afficher_cacher('texte');">Masquer le texte</span>
Partager