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.

Kop en Schotel

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.

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>)

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

(Zet dit in de <BODY>)
<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: Download deze code  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".

 
terug

html-149; Laatste wijziging: 29 april 2020