jQuery mouseleave快

时间:2013-06-14 10:42:21

标签: jquery mouseleave

我在这里给出一个简化的案例。我有2个div一个在另一个上面。当mouseenter上一个(蓝色)fadeOut和一个后面(红色)fadeIn。当鼠标袖子全部来到原始状态。

效果很好。唯一的问题是用户鼠标快速,可能是顶部div(蓝色)仍在那里。在这种情况下,如何才能达到原始状态?

您可以在此处查看答案:http://jsfiddle.net/Narcis/ywTBe/

HTML:

<div id="blue"></div>
<div id="red"></div>

CSS:

#blue{
    position:absolute;
    top:100px; left:100px;
    width:100px; height:100px;
    background:blue;
    z-index:1;
}

#red{
    position:absolute;
    top:100px; left:100px;
    width:100px; height:100px;
    background:red;
    z-index:0;
}

JQUERY:

$(function () {
    $("#blue").mouseenter(function () {
        $("#blue").fadeOut("normal");
        $("#red").fadeIn();
    });

    $("#red").mouseleave(function () {
        $("#blue").fadeIn("normal");
        $("#red").fadeOut();
    });
})

2 个答案:

答案 0 :(得分:1)

这是jsfiddle:http://jsfiddle.net/JZSRk/

        $(function(){
        $("#blue").mouseenter(function() {
            $("#blue").fadeOut("normal"); 
            $("#red").fadeIn();
        });
        $("#blue").mouseleave(function() {
            $("#blue").fadeIn("normal");
            $("#red").fadeOut();
        });
        })

答案 1 :(得分:0)

你可以让它像这样工作 -

Html

<div id='wrapper'>
    <div id="blue"></div>
    <div id="red"></div>
</div>

<强>的js

$(function () {
    $("#wrapper").mouseenter(function () {
        $("#blue").stop(true, true).fadeOut("normal");
        $("#red").stop(true, true).fadeIn();
    });

    $("#wrapper").mouseleave(function () {
        $("#blue").stop(true, true).fadeIn("normal");
        $("#red").stop(true, true).fadeOut();
    });
});

演示---> http://jsfiddle.net/ywTBe/1/