webForumDet fria alternativet

Stänga menyer

JavaScriptur Javascript

7 svar · 239 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#1

Om ni testar den här menyn så ser ni att undermenyerna inte göms när man klickar utanför dem, och jag undrar förstås hur jag åstadkommer detta. De behöver inte gömmas automatiskt efter en viss tid utan bara när man klickar utanför dem. Jag har testat att lägga onFocus="hideAlts()" i body-taggen men det vill inte fungera (hideAlts() är funktionen som gömmer alla undermenyer).

Tack på förhand, och ursäkta allt tjat om min DHTML-meny i det här foumet de senaste dagarna! :)

Medlem sedan dec. 2002789 inlägg
#2

Vet ej säkert att det kommer att fungera men du kan ju alltid testa...

<div id="altdiv1" class="menuAlts" onMouseOut="hideAlts()">
  <table border="0" cellpadding="3">
	<tr> 
	  <td><a href="javascript:;" onClick="hideAlts()">Progressive metal</a></td>
	</tr>
	<tr> 
	  <td><a href="javascript:;" onClick="hideAlts()">Death metal</a></td>
	</tr>
	<tr> 
	  <td><a href="javascript:;" onClick="hideAlts()">Heavy metal</a></td>
	</tr>
  </table>
  <img src="refimg.gif" id="refImg1" width="1" height="1">
</div>

Det är onMouseOut i div taggen jag syftar på...

Medlem sedan apr. 20012 427 inlägg
#3

Jag testade det förut, men resultatet blir... ja, pröva den första menyn (musik) så får ni se. :)

Medlem sedan dec. 2002789 inlägg
#4

Vill du fuska...? :)

Släng då in denna raden till din kod.... Skriv den direkt under <body> taggen...

<body...>
<div id="hideAlts" style="position:absolute; left:0; top:80px; width:100%; height:100%; z-index:0" onMouseOver="hideAlts()"></div>
<!-- resten av din kod här under -->

Vet du förresten om att din sida inte fungerar i Mozilla?

Medlem sedan apr. 20012 427 inlägg
#5

Nej, det där skulle min webbdesignlärare genomskåda direkt. Angående kompatibiliteten så behöver den bara fungera i IE 5+.

Medlem sedan dec. 2002789 inlägg
#6

Vart fick du javascript koden ifrån...? Eller gjorde du den själv?

Medlem sedan apr. 20012 427 inlägg
#7

Jag är total nybörjare vad gäller DHTML och detta är en skoluppgift så det är klart att jag skrivit koden själv. Det borde om inte annat synas på den amatörmässiga koden. :)

Medlem sedan dec. 2002789 inlägg
#8

Lägg detta till var och en av dina div taggar:

onMouseOut="divID='altdiv1';startTimer(divID)"

OBS!!! Glöm inte att ändra divID='???' så att den passar till respektive div taggens id (altdiv1, altdiv2 osv)...

Lägg detta til din meny.js fil. Denna funktionen gömmer menyn efter 2,5 sekunder (2500 i koden nedanför) efter att man har fått en onMouseOut event.

function startTimer(divID){
	timer = setTimeout('document.all["'+divID+'"].style.visibility = "hidden"',2500);
}

Har testat detta i Internet Explorer 6 (service pck 1).

131 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)