mrjerk: Frage - jQuery Animation DIV bei Hover verschieben

Beitrag lesen

Hallo,

Soweit verhält er sich ja auch so wie er soll, nur eben dieser Übergang zwischen dem Hover Befehl des einen und des Anderen DIV's ist nicht flüssig.

Ich hab das mal etwas erweitert - what do you think?.

Das Ruckeln entsteht, weil die jQuery-Animation so gebaut ist, dass sie "weich" ein - und ausfedert (sie bewegt sich erst langsam, dann schnell).

Durch den Wechsel des Hovers wird die Animation gestoppt, dann wieder langsam "angefahren". Das macht den störenden Effekt aus.

In meiner Lösung (die jetzt quick & dirty ist, bitte nur als Denkanstoss verstehen ;) ), wird jetzt eine Animation nur dann wieder neu gestartet, wenn sie nicht schon ohnehin läuft:

  
        if (animationState != "hoverin") {...}  

Das allein würde aber noch nichts helfen, denn bei einem Übergang zwischen den Divs passiert ja direkt hintereinander ein Mouseout und Mouseover.
Die Animation würde also trotzdem gestoppt.

Aus diesem Grund wird auf eine Benutzer-Aktion nicht sofort reagiert sondern erst nach ein paar Milisekunden (100 in meiner Lösung).

  
    // Register that the user has done something, but do not  
    // execute at once the desired action  
    var registerAction = function (wantedState) {  
        clearTimeout(timer);  
        if (wantedState == "hoverin") {  
            timer =setTimeout(hoverIn, 100);  
        }  
        else {  
            timer = setTimeout(hoverOut, 100);  
        }  
    }  

Dadurch werden sehr schnell wechselnde events, die direkt hintereinander kommen, einfach "verschluckt".

Wie gesagt schön ist anders - aber vielleicht ein Anfang ;)

Viele Grüße,
Jörg