Informatie laten verdwijnen en weer laten verschijnen
Hieronder zie je twee drukknoppen en een plaatje. Als je op de knop "Visibility" drukt
verdwijnt het plaatje maar de bladzijde verandert niet. Er ontstaat een lege ruimte.
Als je op de knop "Display" drukt verdwijnt het plaatje en wordt ook de lege ruimte opgevuld.
N.B.: Als je eerst op "Visibility" drukt en daarna op "Display", verdwijnt eerst het plaatje en daarna wordt de open ruimte opgevuld. Als je vervolgens weer op "Visibility" drukt, komt het plaatje niet terug omdat de er geen ruimte voor is. Die ruimte ontstaat pas weer als je weer op "Display" drukt.
In het bovenstaande voorbeeld is het gedaan met een plaatje. Maar het kan ook met tekst en andere HTML-
elementen. Dat maakt deze techniek uitermate geschikt voor het maken van onder andere dynamische menus.
Hieronder staat beschreven hoe je dit aanpakt. Alle op deze pagina beschreven code kun je downloaden voor
je eigen gebruik, inclusief de plaatjes.
<img src="plaatje0.gif" alt="Kop en Schotel" style="visibility:visible; display:block" id="Plaatje" width="216" height="145" border="1">De veranderingen ontstaan door visibility en/of display te veranderen. De referentie aan het plaatje loopt daarbij via de id.
Een voorbeeld: Tekst met toelichting
Klik met de muis op een van de punten hier onder. Er verschijnt een toelichtende tekst, die weer verdwijnt
als je op een ander punt klikt.
Punt 1
Punt 2
Punt 3
Punt 4
De werking van dit voorbeeld is als volgt:
Gebruik:
De code van het voorbeeld met het plaatje ziet er als volgt uit:
(De code van het plaatje staat in de tekst; zet dit in de <HEAD>)
<script>
function ToggleVis() {
var a = document.getElementById('Plaatje');
if (a.style.visibility == "visible") a.style.visibility = "hidden"
else a.style.visibility = "visible";
}
function ToggleDsp() {
var a = document.getElementById('Plaatje');
if (a.style.display == "block") a.style.display = "none"
else a.style.display = "block";
}
</script>
De code van het voorbeeld met de Punten 1 t.m. 4 ziet er als volgt uit:
(Zet dit in de <HEAD>)
(Zet dit in de <BODY>)<script>
function Voorbeeld(ident) {
document.getElementById('Punt1').style.display = "none";
document.getElementById('Punt2').style.display = "none";
document.getElementById('Punt3').style.display = "none";
document.getElementById('Punt4').style.display = "none";
document.getElementById(ident).style.display = "block";
}
</script>
<div>
<p onclick="Voorbeeld('Punt1')" style="cursor:pointer"><b>Punt 1</b><br>
<div id="Punt1" style="display:none;font-size:8pt;color:darkgreen">Dit is tekst bij punt 1. Alleen tekst</div></p>
<p onclick="Voorbeeld('Punt2')" style="cursor:pointer"><b>Punt 2</b><br>
<div id="Punt2" style="display:none;font-size:8pt;color:darkgreen">Dit punt 2 met een plaatje: <img src="biertje.gif" alt="Proost" width="60" height="15" hspace="10" border="0"></div></p>
<p onclick="Voorbeeld('Punt3')" style="cursor:pointer"><b>Punt 3</b><br>
<div id="Punt3" style="display:none;font-size:8pt;color:darkgreen">Dit is punt 3. Je kunt hier bijvoorbeeld ook <a href="surfhulp.htm" target="NewBen">hyperlinks</a> in zetten. Handig als je een dynamisch menu wilt maken.</div></p>
<p onclick="Voorbeeld('Punt4')" style="cursor:pointer"><b>Punt 4</b><br>
<div id="Punt4" style="display:none;font-size:8pt;color:darkgreen">Dit is punt 4. Eigenlijk kun je dit doen met alle geldige HTML-code!</div></p>
</div>
Downloaden:
Druk op de knop:
File: voorb149.zip, 15 985 bytes.
Opmerking:
Een methode om vergelijkbare effecten te verkrijgen is door de website zelf de HTML-code te laten wijzigen. Dat doe je door
document.innerHTML aan te passen. Zie het item "HTML dynamisch wijzigen".
visiblity kun je, naast visible en hidden, ook instellen op collapse. Dat werkt alleen voor tabellen
en in een flex-layout. Je kunt er rijen (<tr>), rij-groepen (<tbody>), kolommen (<col>),
kolomgroepen (<colgroup>) en flex-items mee verbergen alsof je display:none gebruikt.
Met andere elementen werkt het alsof je visibility:hidden gebruikt.