Toon posts:

[js / dhtml] frameset mouseover probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb twee frames
code:
1
2
3
4
5
-------------
|     |     |
|  1  |  2  |
|...  |     |
-------------

Na een mouseover in frame 1, maak ik een div zichtbaar in frame 2 (ja dit is een menu :P). Als de muis dan van de mouseover wordt verplaatst in frame 1, moet de div verdwijnen. Wordt de muis echter in frame2 op de div geplaatst, dan moet deze blijven staan. Dit blijkt echter moeilijker dan het is. In IE lukt het wel, maar Moz/NS laat de div verdwijnen als de muis naar frame2 gaat. setTimeout werkt wel, maar laat de div in beide browsers verdwijnen na de timeout :(

waarschijnlijk kijk ik ergens overheen :?

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

:?

dus:
if mouseover in frame1 then show layer in frame2.
if mouseout in frame1 then hide layer in frame2.
if mouseover in frame2 then show layer in frame2.
if moueout in frame2 then ...weetniet.

Dat de zaak in Mozilla niet werkt zou iets over het wijze van het aanspreken van het object kunnen zeggen.
Denk dat het posten van een stukkie code onontbeerlijk is...

www.jurgroessen.nl


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

* drm postte onzin

edit:
post anders even een linkje, want wat je allemaal vertelt is mij "abacadabra" :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Als ik het me goed herinner heb ik een dergelijk probleem ooit opgelost door een settimeout op de onmouseout event van het menu in het eerste frame te zetten. Deze liet het menu verdwijnen, behalve wanneer er een bepaald vinkje aanstond. Als je dan met je muis naar het andere frame ging en je bleef in het menu, dan zorgde de onmouseover event van het menu in het andere frame ervoor dat dat vinkje aangezet werd. Zo bleef het menu aanstaan, ook al was de settimeout afgelopen.

Verwijderd

Topicstarter
TlighT hulde!
code:
1
setTimeout('laagnietzichtbaar(\'menu1\')',500)

op de mouseover in het menuframe .

Hier de functie:
code:
1
2
3
4
5
6
function laagnietzichtbaar(strLayer) {
  if (document.formulier.menuaktief.value != 'true') {
    var varLayer = getFrameLayer(strLayer);
    varLayer.visibility = 'hidden';
  }
}

OnMouseOver op de div in frame2 zet het hidden form field 'menuaktief' in frame 1 op 'true'. OnMouseOut op deze div in frame 2 zet de waarde van dit hidden form field in frame 1 op '' zodat de visibility functie wel getriggerd wordt.