Horizontaal inschuivend menu met CSS en W3.JS

Links bovenaan deze pagina zie je een hamburger-menu-icoontje. Als je er op klikt/tikt schuift er een paneel in beeld met een menu. Als je op een item klikt wordt er een nieuw venster of tabblad geopend waarin de gevraagde webpagina verschijnt. Met een klik/tik op het kruis verdwijnt het menu weer.

Op deze pagina wordt uitgelegd hoe je zoiets maakt. De code staat onderaan de pagina, die kun je ook downloaden om zelf te gebruiken, inclusief de icoontjes.

Het voorbeeld is een bewerking van een script uit Webdesigner Magazine nr.78, pag. 22.
Dit blad wordt sinds november 2017 niet meer gemaakt.
Ik heb het effect verfraaid en de code een beetje vereenvoudigd, waarbij o.a. jQuery is vervangen door gewoon JavaScript en W3.JS.

Gebruik:

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

<!-- Laad het W3-platform -->
<script src="w3.js"></script>
 
<!-- Laad het benodigde JavaScript -->
<script>
var menuOpen = false; //Menu is gesloten per default

function initMenu() {
  document.getElementById("hamburger").addEventListener('click', actief)
}
 
function Sluiten() {
  //Schakel de menu element klasse om in 'closed'
  w3.removeClass('#menu', 'open')
  //Zet de menuOpen vlag uit en zet het menu-icoontje uit
  menuOpen = false;
  document.getElementById("hamburger").innerHTML =
    "<img src='icon-menu.png' height='26' width='26'>";
}
 
function actief(event) {
if(event.type == "click") {
  //Schakel de menu element klasse om in open of closed
  w3.toggleClass('#menu', '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' height='26' width='26'>";
  } else {
    document.getElementById("hamburger").innerHTML =
      "<img src='icon-menu.png' height='26' width='26'>";
  }
}
}
 
window.onload = initMenu;
</script>
 
<!-- Laad de styles voor deze toepassing -->
<link rel="stylesheet" href="styles.css">

(Zet dit bovenaan in de <BODY>).

<div id="menu">
  <div id="paneel">
    <ul>
      <li><a href="https://home.hccnet.nl/s.f.boukes"
        target="NewBen">Ben's Hobbyhoekje</li>
      <li><a href="https://www.webmasterij.nl/fotoalbum"
        target="NewBen">Ben's FotoSite</a></li>
      <li><a href="https://www.webmasterij.nl/fractals"
        target="NewBen">Ben's Fractalsite</a></li>
      <li><a href="https://www.webmasterij.nl"
        target="NewBen">Webmasterij.nl</a></li>
      <li><a href="https://www.facebook.com/webmasterij"
        target="NewBen">Facebook</a></li>
      <li><a href="javascript:Sluiten()">Menu sluiten</a></li>
    </ul>
  </div>
  <div id="hamburger">
    <img src="icon-menu.png" height="26" width="26">
  </div>
</div>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb492.zip, 2659 bytes.

 
terug

html-492; Laatste wijziging: 30 januari 2023