Menu met wegdraaiende content

De techniek die hier wordt besproken is bij uitstek geschikt voor een site met verschillende onderwerpen die in korte content (weinig woorden) worden behandeld. De uitvoering op deze site is ook geschikt als voorblad met een submenu.

We beginnen met het voorbeeld. Er is een aantal foto's te zien met wat tekst. Dat zou als menu kunnen dienen. In de linker bovenhoek staat een hamburger-teken. Gewoonlijk open je daarmee een menu.
Als je op de hamburger klikt verandert het in een kruis. De hele contant draait opzij en toont het hoofdmenu. Als je op het kruis klikt sluit het menu weer. Dat gebeurt ook als je op het teken < in het menu klikt.
N.B.: de links in het menu sturen je naar een van mijn websites.

Toon het voorbeeld

Op deze pagina wordt uitgelegd hoe je dit maakt. De code kun je downloaden om zelf te gebruiken, echter zonder de foto's. Daar moet je zelf voor zorgen.

Ik heb dit menu gevonden op de site Lazarus.nl. Die site bestaat niet meer. Voor deze site heb ik het effect nagebouwd.

Gebruik:

De code van het voorbeeld ziet er als volgt uit:
 
(Zet dit in de <HEAD>).

<link rel="stylesheet" href="styles.css">
 
<script>
var menuOpen = false; //Menu is gesloten per default
function initMenu() {
  document.getElementById("hamburger").addEventListener('click', actief)
  document.getElementById("terug").addEventListener('click', sluiten)
}
function sluiten() {
  document.getElementsByTagName('main')[0].classList.toggle("open");
  //Schakel de menu element klasse om in closed
  document.getElementById('hamburger').classList.remove("open");
  //Zet de menuOpen vlag uit en zet het menu-icoontje terug
  menuOpen = false;
  document.getElementById("hamburger").innerHTML = "<img src='icon-menu.png'>";
}
function actief(event) {
  if (event.type == "click") {
    //Schakel de menu element klasse om in open of closed
  document.getElementsByTagName('main')[0].classList.toggle("open");
    //Zet de menuOpen vlag om
    menuOpen = !menuOpen;
    //Schakel de tab van hamburger om naar kruis en vice-versa.
    if (menuOpen) {
      document.getElementById("hamburger").innerHTML = "<img src='icon-kruis.png'>";
    } else {
      document.getElementById("hamburger").innerHTML = "<img src='icon-menu.png'>";
    }
  }
}
window.onload = initMenu;
 
</script>

(Dit is code van de <BODY>.

<div class="whitespace"></div>
<div class="menu">
  <a href="https://home.hccnet.nl/s.f.boukes" target="NewBen">Ben's Hobbyhoekje</a><br>
  <a href="https://www.webmasterij.nl/fotoalbum" target="NewBen">Ben's Fotosite</a><br>
  <a href="https://www.webmasterij.nl/fractals" target="NewBen">Ben's Fractalsite</a><br>
  <a href="https://www.webmasterij.nl" target="NewBen">Webmasterij.nl</a><br>
  <div id="terug"><a>&lt;</a></div>
</div>
 
<main>
  <div id="hamburger"><img src="icon-menu.png"></div>

  <div class="kop">Welkom op mijn site</div>
  <div>
    <img src="foto-1.jpg" alt="Molen">
    <img src="foto-2.jpg" alt="Paddenstoel">
    <img src="foto-4.jpg" alt="Roos">
    <img src="foto-5.jpg" alt="Hoogspanningsmast">
    <img src="foto-6.jpg" alt="Parkje">
    <p>Een gebeuren vol met HTML, JavaScript, CSS, Foto's
        en Fractals.</p>
  </div>
</main>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb602.zip, 3063 bytes.

 
terug

html-602; Laatste wijziging: 23 januari 2024