3 Stimmen

jquery mouseleave Problem bei zu langsamer Bewegung

Ich verwende die jQuery-Mouseenter- und Mouseleave-Ereignisse, um ein Div nach unten und oben zu schieben.

Alles funktioniert gut, bis auf das Mouseleave, das NUR dann nicht zu funktionieren scheint, wenn die Maus ganz langsam vom Div wegbewegt wird. Wenn ich die Maus mit einer relativ normalen oder schnellen Geschwindigkeit bewegen, dann funktioniert es wie erwartet.

Kann jemand dieses Problem erklären oder Informationen darüber geben, wie man es umgehen kann?

Code:

$(document).ready(function() {
    $('header').mouseenter(function() {
        $(this).stop().animate({'top' : '25px'}, 500, function() {
            $(this).delay(600).animate({'top' : '-50px'}, 500);
        });
    }).mouseleave(function(e) {
        var position = $(this).position();
        if (e.pageY > position.top + $(this).height()) {
            $(this).stop().delay(600).animate({'top' : '-75px'}, 500) ;
        }
    });
});

0voto

Sbml Punkte 1867

Versuchen Sie, Hover statt Mouseenter und Mouseleave zu verwenden;

$(document).ready(function() {
    $("#div").hover(function() {
         $("#something").slideDown(400);
    }, function() {
         $("#something").slideUp(400);
    });
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X