Tein tollasen menu valikon ja nyt tuli pulma että kun vien esim hiiren menu 1 päälle niin aukee valikko mutta kun lähen valikosta niin valikko ei sulkeudu mutta menu 3 tein onmouseoutilla että valikko sulkeutuu kun hiiri ei ole sen päällä mutta jos sivulla on tekstiä (liitin nyt satunnaisen uutisen siihen jossa tekstiä paljon) niin menu 3 sulkeutuu kun menen sen tekstin päälle, koittakaa ymmärtää? EDIT: siis vaikka hiiri on menun ja tekstin päällä
Osoite jossa menu on http://jykkemus.biz/menuu/menu.php
Aika omaperäinen viritelmä. Jos haluat vaan saada toimimaan ilman suuria muutoksia, niin yksi vaihtoehto on siirtää nuo onmouseover- ja onmouseout-attribuutit <dl>-elementeille. Pikaisesti kun testasin niin tuntui toimivan. Siis tällä tavalla:
<dl onmouseover="javascript:show('smenu1');" onmouseout="javascript:show('');">
<dt>Menu 1</dt>
<dd id="smenu1">
<ul>
<li><a href="#">sub-menu 1.1</a></li>
<li><a href="#">sub-menu 1.2</a></li>
<li><a href="#">sub-menu 1.3</a></li>
<li><a href="#">sub-menu 1.4</a></li>
<li><a href="#">sub-menu 1.5</a></li>
<li><a href="#">sub-menu 1.6</a></li>
</ul>
</dd>
</dl>Ei toimi, kokeilin menu 4:seen sitä. Mahtaako se tehä jonkun pikku välin menu 4 noilla sub menu 1.1, - 1.2, - 1.3 ja - 1.4
Ku vie hiiren niitten väliin niin se sulkeutuu mut ei taida johtua siitä tekstistä
Nyt toimii ainakin Firefoxilla, Konquerorilla ja Operalla.
no sitten vika ie:ssä
Auttaisiko tämän tapainen testaamaton muutos js-tiedostoon:
var show = function shows(id) {
var d = document.getElementById(id);
for (var i = 1; i<=10; i++) {
if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
}
if (d) {d.style.display='block';}
}
window.onload=show;Ps. Testasin tätä koneellani ja tuntuisi toimivan.
Linkin takana on siis CSS-valikko, joka toimii ihan ilman JavaScriptiä.
Kuitenkin kun JavaScriptiviritelmän kytkee mukaan, niin valikko muuttaa käyttäytymistään ja toimiikin kivasti JavaScriptin voimin.
Ulkoasu ja toimivuus on täysin kuitenkin CSS:n varassa. Erikoisuutena moniin muihin ratkaisuihin on se, että IE6:lle osoitettuja CSS-kikkoja on vain kaksi riviä. Muutoin valikko toimii täysin selaimesta toiseen sellaisenaan. Värejä voi muutella, taustakuvia voi säädellä, ja kokojenkin säätäminen onnistuu (line-height ja paddingit). Minkä tahansa muun muuttaminen sitten voikin aiheuttaa vakavia rikkoutumisoireita IE:n osalta, valitettavasti.
Tuo Merrin esimerkki toimii aika hyvin Opera minissäkin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.