Momenteel ben ik een website aan het ontwikkelen die tot twee lagen diep pagina's heeft. Om niet een ontzettend lange lijst in het menu weer te geven heb ik met CSS en Javascript een functie gemaakt die de submenu's weergeeft wanneer op de parent geklikt wordt.
Deze constructie leverde twee problemen op, waarvan ik er inmiddels één (wel met een workaround) opgelost heb. Het eerste probleem was dat wanneer ik de achtergrondkleur op een a:hover event liet veranderen de hoogte van de pagina ineens met ongeveer 200 pixels toenam. Door deze eigenschap uit het stylesheet te halen en een onmouseover/out (this.style.background) aan de link toe te voegen heb ik dit opgelost.
Nu dit probleem was opgelost stuitte ik op het volgende probleem: zodra ik de javascriptfunctie uitvoer die het submenu laat uitklappen wordt ook de pagina met ongeveer 200 pixels hoger. Ik heb geprobeerd om dit te corrigeren met Javascript en door verschillende waardes aan het stylesheet toe te voegen, maar niets lijkt te helpen.
Opvallend is wel dat alleen Internet Explorer 6 last lijkt te hebben van dit probleem, andere browsers renderen de pagina gewoon zoals het hoort.
De Javascript functie die het submenu togglet is:
De pagina waar het probleem te bekijken is http://particulieren.vanhelvoirt.nu/content/136/aanpak.html. Klik hier bijvoorbeeld op het item 'Diensten' en je zult zien dat de paginahoogte verandert. De div's 'nav' (het menu) en 'content' (de inhoud dus) behouden hun normale lengte, de wrap van deze twee met het id 'main' is de div die ineens langer wordt.
Waar zou dit aan kunnen liggen en hoe is het te verhelpen?
Edit:
Op zeer hoge resoluties is dit probleem niet waar te nemen, omdat die 200 pixels extra dan geen verschil maken tussen scrollbars of niet. Het probleem valt daarom dus vooral op bij resoluties als 1024 x 768 en 1280 x 1024.
Deze constructie leverde twee problemen op, waarvan ik er inmiddels één (wel met een workaround) opgelost heb. Het eerste probleem was dat wanneer ik de achtergrondkleur op een a:hover event liet veranderen de hoogte van de pagina ineens met ongeveer 200 pixels toenam. Door deze eigenschap uit het stylesheet te halen en een onmouseover/out (this.style.background) aan de link toe te voegen heb ik dit opgelost.
Nu dit probleem was opgelost stuitte ik op het volgende probleem: zodra ik de javascriptfunctie uitvoer die het submenu laat uitklappen wordt ook de pagina met ongeveer 200 pixels hoger. Ik heb geprobeerd om dit te corrigeren met Javascript en door verschillende waardes aan het stylesheet toe te voegen, maar niets lijkt te helpen.
Opvallend is wel dat alleen Internet Explorer 6 last lijkt te hebben van dit probleem, andere browsers renderen de pagina gewoon zoals het hoort.
De Javascript functie die het submenu togglet is:
JavaScript:
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
| var lastOpen; var lastParent; function toggleSubmenu(id, parent) { var submenu = 'submenu' + id; if (lastOpen != null && lastOpen != id) { if (lastOpen != parent) { document.getElementById('submenu' + lastOpen).style.display = 'none'; } document.getElementById(submenu).style.display = 'block'; lastOpen = id; } else if (lastOpen != null && lastOpen == id) { document.getElementById(submenu).style.display = 'none'; lastOpen = null; } else { document.getElementById(submenu).style.display = 'block'; lastOpen = id; } lastParent = parent; } |
De pagina waar het probleem te bekijken is http://particulieren.vanhelvoirt.nu/content/136/aanpak.html. Klik hier bijvoorbeeld op het item 'Diensten' en je zult zien dat de paginahoogte verandert. De div's 'nav' (het menu) en 'content' (de inhoud dus) behouden hun normale lengte, de wrap van deze twee met het id 'main' is de div die ineens langer wordt.
Waar zou dit aan kunnen liggen en hoe is het te verhelpen?
Edit:
Op zeer hoge resoluties is dit probleem niet waar te nemen, omdat die 200 pixels extra dan geen verschil maken tussen scrollbars of niet. Het probleem valt daarom dus vooral op bij resoluties als 1024 x 768 en 1280 x 1024.
[ Voor 4% gewijzigd door Verwijderd op 13-12-2006 17:24 ]