[JS/HTML] problemen met verdwijnen layers bij slidedownmenu

Pagina: 1
Acties:
  • 40 views sinds 30-01-2008

  • Theske
  • Registratie: Februari 2003
  • Laatst online: 14-05-2017
Hallo,
Ik ben al een tijdje bezig met het op orde krijgen van mijn menu en heb ook al eens eerder om jullie hulp geroepen, maar helaas is het me nog niet gelukt. Ik dacht om nu maar eens met een frisse lei verder te gaan.

Ik heb dus een slide down menu gemaakt met verschillende kleuren. Dit heb ik voor elkaar gekregen door verschillende div's te laden. Nu is dat allemaal wel mooi gelukt alleen wanneer een balkje is uitgeklapt en ik met mijn muis over het volgende menu kopje ga, dan komt daaruit mooi het desbetreffende menu, maarrrrrr dan klapt het menu van het eerste menu kopje niet meer in :/
Wanneer ik uit de layer verdwijn met mijn muis, dan klapt de balk netjes in.. ook wanneer ik klik op het hoofdmenu kopje, klapt hij netjes in. Het probleem is dus alleen wanneer ik met mijn muis over de verschillende menukoppen heen ga, zonder van de menubalk te verdwijnen met mijn muis.

Ik denk dat het komt doordat alle div's tegelijk worden geladen en dat hij daarmee in de knoop komt.... ik kan ze in ieder geval niet apart laden (voor zover ik het getest) want dan werkt alleen diegene die direct is geladen. (Hij laat alle div's direct bij het laden van de pagina)

Ik heb al wat geprobeerd, door op verschillende plekken koppelingen naar functies te maken... zo ook in de link bij onMouseout en bij de functie dropdownmenu() heb ik geprobeerd de functie delayhidemenu() aan te roepen, maar dan verdwijnt het uitgeklapte menu direct weer (zoals naar verwachting) .

Ik hoop dat het een beetje duidelijk is en dat jullie me hiermee kunnen helpen.
Mocht er iets niet duidelijk zijn dan hoor ik het graag.
Alvast hartelijke dank!

Het menu wordt aangeroepen dmv van:::
HTML:
1
<a href="#" onClick="return clickreturnvalue()" onMouseover="dropdownmenu(this, event, menu1, '1', '160px')" onMouseout="delayhidemenu()">bureau</a>

en de code is:::
(Ik heb weggelaten wat voor zover ik weet niet relevant is voor het oplossen van mijn probleem. Het kan zijn dat er misschien nog een aantal zaken weggelaten konden worden, maar ik zou eigenlijk niet weten wat dat dan zou kunnen zijn, mijn excuses ervoor dan. Ik heb gezegt dat het java is ipv js, want hierbij krijg je de mooie kleurtjes ;) )
Java:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
if (ie4||ns6){ 
document.write('<div id="dropmenudiv1" style="visibility:hidden;width:'+menuwidth+';" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>') 
//enz..
}

function showhide(obj, e, visible, hidden, menuwidth){
if (ie4||ns6)
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (menuwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=menuwidth
}
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
obj.visibility=visible
else if (e.type=="click")
obj.visibility=hidden
}

function dropdownmenu(obj, e, menucontents, menustyle, menuwidth){
if (window.event) event.cancelBubble=true
else if (e.stopPropagation) e.stopPropagation()
clearhidemenu()

if (menustyle == 1) {
dropmenuobj=document.getElementById? document.getElementById("dropmenudiv1") : dropmenudiv1
}
//enz..

if (ie4||ns6){
showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
}

return clickreturnvalue()
}

function clickreturnvalue(){
if (ie4||ns6) return false
else return true
}

function dynamichide(e){
if (ie4&&!dropmenuobj.contains(e.toElement))
delayhidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
delayhidemenu()
}

function hidemenu(e){
if (typeof dropmenuobj!="undefined"){
if (ie4||ns6)
dropmenuobj.style.visibility="hidden"
}
}

function delayhidemenu(){
if (ie4||ns6)
delayhide=setTimeout("hidemenu()",250)
}

function clearhidemenu(){
if (typeof delayhide!="undefined")
clearTimeout(delayhide)
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu

Proud member of the Cosmic Cows


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Waarom ga je niet gewoon verder in je oude topic :?

[rml][ JS en HTML] layers verdwijnen niet altijd bij onMouseout[/rml]

Overigens is het belangrijk om te weten hoe je die layers toevoegt. Waarschijnlijk dynamisch (althans met JS geset), maar ik zie dat niet terugkomen in je voorbeeld. Waarom is dat belangrijk, dan kunnen we controleren waarom die onmouseout niet wordt getriggered ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Dit topic is gesloten.