Ik ben een site, die ik in het verleden heb gemaakt voor een schoolproject, aan het verbeteren, moderner maken en om aan het bouwen voor een nieuw priveproject. Ik ben nu al eerst begonnen natuurlijk met de code van de site zelf aan te passen alvorens ik aan de inhoud begin. Hierbij ben ik begonnen met de menubalk aan te passen/compleet opnieuw aan het maken volgens de voorbeelden op W3Schools.
Mijn doel is om de menubalk ongeveer op dezelfde manier in te richten als hier op Tweakers. De menubalk moet dus de volgende functies hebben:
-Uiteindelijk een logo links in de menubalk (nog niks over uitgezocht, dus nu nog niet relevant)
-Dropdown-menu (verticaal, net zoals bij Tweakers.net)
-De menubalk moet sticky zijn (net zoals bij Tweakers.)
-De menubalk moet het browserwindow zowel links, rechts en boven continu raken, net zoals bij Tweakers.
-Er moet een beetje ruimte zitten tussen de menubalk en de container/body met tekst (zoals nu het geval is)
-Het moet werken op zowel mobiel als pc.
-Uiteindelijk moet de menubalk dus volledig responsive worden met een hamburgermenu of zo. Hier moet ik zelf nog over nadenken qua hoe ik dat het liefste zou hebben. Dus dit punt is ook nog niet heel relevant.
Nu heb ik afgelopen dagen heel wat geprobeerd. Helaas heb ik een aantal fouten er niet uit kunnen krijgen, zelfs na veel Googelen en opzoeken op W3Schools:
-Links, rechts en boven de menubalk zit nog steeds een rand van de achtergrond. Ik wil dus eigenlijk dat de menubalk deze kanten gewoon raakt.
-Als je scrollt verspringt de menubalk als het ware: de menubalk raakt dan wel netjes de rechterkant en bovenkant van het browserscherm (waarom nu wel ineens?!), maar niet de linkerkant.... zucht....
-Het dropdown-menu werkt opzicht goed, alleen worden de links daarin horizontaal weergeven i.p.v. verticaal.
De pagina waar je al deze fouten het best kunt zien is deze pagina: https://elzendaaltyb.nl/algemeneinfo (alles wat aan informatie in de body staat is verouderd, niet relevant en niet privacy-gevoelig!) Wie zou mij kunnen helpen om deze fouten te verhelpen? Hieronder kunnen jullie de code zien die er op dit moment gebruikt wordt voor de menubalk.
De desbetreffende HTML-code van de menubalk is:
De desbetreffende CSS-code is:
De desbetreffende Javascript-code die is gebruikt om de balk sticky te maken (al zou volgens mij dit alles ook mogelijk moeten zijn zonder javascript te gebruiken):
Mijn doel is om de menubalk ongeveer op dezelfde manier in te richten als hier op Tweakers. De menubalk moet dus de volgende functies hebben:
-Uiteindelijk een logo links in de menubalk (nog niks over uitgezocht, dus nu nog niet relevant)
-Dropdown-menu (verticaal, net zoals bij Tweakers.net)
-De menubalk moet sticky zijn (net zoals bij Tweakers.)
-De menubalk moet het browserwindow zowel links, rechts en boven continu raken, net zoals bij Tweakers.
-Er moet een beetje ruimte zitten tussen de menubalk en de container/body met tekst (zoals nu het geval is)
-Het moet werken op zowel mobiel als pc.
-Uiteindelijk moet de menubalk dus volledig responsive worden met een hamburgermenu of zo. Hier moet ik zelf nog over nadenken qua hoe ik dat het liefste zou hebben. Dus dit punt is ook nog niet heel relevant.
Nu heb ik afgelopen dagen heel wat geprobeerd. Helaas heb ik een aantal fouten er niet uit kunnen krijgen, zelfs na veel Googelen en opzoeken op W3Schools:
-Links, rechts en boven de menubalk zit nog steeds een rand van de achtergrond. Ik wil dus eigenlijk dat de menubalk deze kanten gewoon raakt.
-Als je scrollt verspringt de menubalk als het ware: de menubalk raakt dan wel netjes de rechterkant en bovenkant van het browserscherm (waarom nu wel ineens?!), maar niet de linkerkant.... zucht....
-Het dropdown-menu werkt opzicht goed, alleen worden de links daarin horizontaal weergeven i.p.v. verticaal.
De pagina waar je al deze fouten het best kunt zien is deze pagina: https://elzendaaltyb.nl/algemeneinfo (alles wat aan informatie in de body staat is verouderd, niet relevant en niet privacy-gevoelig!) Wie zou mij kunnen helpen om deze fouten te verhelpen? Hieronder kunnen jullie de code zien die er op dit moment gebruikt wordt voor de menubalk.
De desbetreffende HTML-code van de menubalk is:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <div class="navbar" id="navbar"> <a href="index">Home</a> <a href="inzamelen">Geld voor Kika!</a> <a href="algemeneinfo">TYB-informatie</a> <a href="activiteiten">Activiteiten</a> <div class="dropdown"> <button class="dropbtn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <a href="inschrijven"><b>INSCHRIJVEN!</b></a> <a href="media">Media</a> <a href="contactformulier">Contact</a> <a href="inschrijven"><b>INSCHRIJVEN!</b></a> <a href="media">Media</a> <a href="contactformulier">Contact</a> <a href="inschrijven"><b>INSCHRIJVEN!</b></a> </div> </div> </div> |
De desbetreffende CSS-code is:
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
| #navbar { overflow:hidden; background-color:#DC191B; margin-bottom:10px; } #navbar a { float: left; display: block; color: #f2f2f2; text-align: center; padding: 14px 16px; text-decoration: none; font-size: 17px; } #navbar a:hover { background-color: black; } /* Page content */ .container { padding: 16px; } /* Hide the link that should open and close the navbar on small screens */ .navbar .icon { display: none; } /* Dropdown container - needed to position the dropdown content */ .dropdown { float: left; overflow: hidden; } /* Style the dropdown button to fit inside the navbar */ .dropdown .dropbtn { font-size: 17px; border: none; outline: none; color: white; padding: 14px 16px; background-color: inherit; font-family: inherit; margin: 0; } /* Style the dropdown content (hidden by default) */ .dropdown-content { display: none; position: absolute; background-color: #DC191B; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } /* Style the links inside the dropdown */ .dropdown-content a { float: none; color: black; padding: 12px 16px; text-decoration: none; display: block; text-align: left; } /* Add a grey background to dropdown links on hover */ .dropdown-content a:hover { background-color: #ddd; } /* Show the dropdown menu when the user moves the mouse over the dropdown button */ .dropdown:hover .dropdown-content { display: block; } /* The sticky class is added to the navbar with JS when it reaches its scroll position */ .sticky { position: fixed; top: 0; width: 100% } /* Add some top padding to the page content to prevent sudden quick movement (as the navigation bar gets a new position at the top of the page (position:fixed and top:0) */ .sticky + .container { padding-top: 60px; } |
De desbetreffende Javascript-code die is gebruikt om de balk sticky te maken (al zou volgens mij dit alles ook mogelijk moeten zijn zonder javascript te gebruiken):
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| <script type="text/javascript"> // When the user scrolls the page, execute myFunction window.onscroll = function() {myFunction()}; // Get the navbar var navbar = document.getElementById("navbar"); // Get the offset position of the navbar var sticky = navbar.offsetTop; // Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position function myFunction() { if (window.pageYOffset >= sticky) { navbar.classList.add("sticky") } else { navbar.classList.remove("sticky"); } } </script> |
Are you comparing me to God? I mean, it’s great, but so you know, I’ve never made a tree.