2010-12-10 7 views
-1

Kann jemand Licht auf die beste Art, dies zu tun, werfen?CSS Dropdown-Menü, um bei Mausklick sichtbar zu bleiben

Ich habe heute ein CSS-Dropdown-Menü basierend auf dem Sohn von Suckerfish erstellt. Ich möchte es leicht mit JS verbessern, so dass bei Mouseout die <ul>, die bei Mouse Over sichtbar wird, für ein paar Sekunden auf dem Bildschirm bleibt.

Hier ist ein Link auf die Faux Dropdown CSS Menu

http://www.eagleworks.co.uk/test/cssdropdown/

Alle Links oder Ratschläge wäre genial.

Danke alle

+0

Die Frage sollte für zukünftige Referenz verlassen werden. – enduro

Antwort

0

Sie können dies tun, indem Sie ein Timeout verwenden.

So etwas wie die folgenden funktionieren soll:

eine globale Variable erstellen: var theTimeout = null;

dann die mouseout ändern und die entsprechenden Maus jeweils den Timeout zu setzen und löschen.

sfEls[i].onmouseover=function() { 
    clearTimeout(theTimeout); 
    this.className+=" sfhover"; 
} 
sfEls[i].onmouseout=function() { 
    var self = this; 
    theTimeout = setTimeout(function(){ 
     self.className=this.className.replace(new RegExp(" sfhover\\b"), ""); 
    },2000); 
} 

Wenn Sie mehr als eine dieser Dropdown-Listen auf der Seite haben, dann werden Sie eine Reihe von Timeouts benötigen, damit Sie sie jedes Mal, wenn Sie ein anderes Menü öffnen sich nicht überschreiben.

+0

Danke, ich werde es versuchen. – eagleworks

Verwandte Themen