OnMouse over --> verzögerung
Andreas Michael
- dhtml
Hallo,
ich habe folgendes Problem:
Ich möchte eine Seite gestalten, wo ich mit der Maus über Grafiken gehen möchte (--> OnMouseOver) dann soll sich ein layer aufklappen mit ein paar Links drin, die dann auch angeklickt werden können. Jedoch habe ich noch nicht verstanden, wie ich das verschwinden des Layers verzögern kann (Wenn ich mit der Maus von der ursprünglichen Grafik weggehe, soll der erscheinende Layer ja auch wieder verschwinden (Aber nicht sofort!)).
Habt ihr da ein paar Ideen, bzw. Links im Internet, wo das Thema besprochen wird?
Ach ja, es soll möglichst kompatibel zu Mozilla (bzw. Firebird) und dem Internet Explorer sein. Muss ich da eine Weiche in die Webseiten einbauen? oder gibt es eine Möglichkeit einen Code zu basteln, den beide Browser verstehen...
Danke für eure Hilfe!
CU
Andreas
Also,
ich kenn mich nicht sehr gut mit JavaScript aus (um das schon im
voraus zu sagen), aber ich würde das Verzögern irgendwie mit einem
setTimeout() >> http://www.selfhtml.net/javascript/objekte/window.htm#set_timeout machen.
1. Beim Laden der Seite setzt du den Layer auf unsichtbar (visibility:hidden)
2. Beim onMouseover über das Bild setzt du den Layer auf sichtbar (visibility:visible) (zusätzlich Position angeben, falls nicht schon unter 1. gemacht)
3. Beim onMouseover über den Layer setzt du den Layer (ebenfalls) auf sichtbar (damit er nicht schon beim Verlassen des Bildes ausgeblendet wird.
4. Beim onMouseout des Layers setzt du den Layer wieder auf unsichtbar. Willst du das verzögern, dann so:
<div ... onMouseout="hideIt(this.id);">
Die Funktion hideIt sieht bei einer Verzögerung von 1 Sekunde dann etwa so aus:
function hideIt(prmID)
{
setTimeout("document.getElementById(prmID).style.visibility = 'hidden';",1000)
}
Gruss,
Daniel