jquery mouseleave issue when moving too slow

Posted by David on Stack Overflow See other posts from Stack Overflow or by David
Published on 2010-12-21T14:30:13Z Indexed on 2011/02/12 15:25 UTC
Read the original article Hit count: 197

Filed under:
|
|

Hello. I am using the jQuery mouseenter and mouseleave events to slide a div down and up.

Everything works well except for the mouseleave which doesn't appear to fire ONLY if the mouse of moved off of the div quite slowly. If i move the mouse at a relatively normal or fast speed then it works as expected.

Can anyone explain this or provide any info on how to get around this?

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) ;
            }
        });
    });

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about jQuery