Cytat
Zamula na starszych operach
Jak starszych? 12 czy trochę wyższych? Jak 12, to nawet nie ma sensu nad tym siedzieć… Wszak to już kilkuletnie trupy - nie oszukujmy się.
Co do sposobu - nie wiem czy bym nie szedł po prostu w zabawę klasą.
Kod
<!DOCTYPE html>
<html lang="pl" dir="ltr" class="no-js">
<head>
<meta charset="UTF-8">
<script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script>
<title>Ehhhh</title>
<style>
.no-js #menu > button
{
display: none;
}
#menu > button:before
{
content: '[#]';
}
#menu.open > button:before
{
content: '[^]';
}
#menu > ul
{
display: none;
}
#menu.open > ul, .no-js #menu > ul
{
display: block;
}
</style>
</head>
<body>
<nav id="menu">
<button>Menu</button>
<ul>
<li><a href="/">Strona główna</a></li>
<li><a href="/chat/">Czat</a></li>
</ul>
</nav>
<script>
(function(menu)
{
var button = menu.getElementsByTagName('button')[0];
button.addEventListener('click', function(e)
{
if(menu.className.indexOf('open') === -1)
menu.className += ' open';
else
menu.className = menu.className.replace(/[s]*open/, '');
});
}(document.getElementById('menu')));
</script>
</body>
</html>
W tym kodzie menu jest rozwinięte zawsze, gdy user nie ma JS + dodatkowo wszystkie zmiany związane z jego wyglądem odgrywają się poprzez zmianę klasy.