Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Ongelma menuvalikossa

Sivun loppuun

JyKKemus [17.10.2007 13:10:45]

#

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

jlaire [17.10.2007 14:10:22]

#

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>

JyKKemus [17.10.2007 14:37:44]

#

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ä

jlaire [17.10.2007 14:43:43]

#

Nyt toimii ainakin Firefoxilla, Konquerorilla ja Operalla.

JyKKemus [17.10.2007 14:44:14]

#

no sitten vika ie:ssä

pistemies [17.10.2007 15:02:59]

#

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.

Merri [17.10.2007 15:58:14]

#

Tässä hieman ihmeteltävää.

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.

ajv [17.10.2007 23:49:51]

#

Tuo Merrin esimerkki toimii aika hyvin Opera minissäkin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta