在悬停时终止jquery淡入淡出效果

时间:2012-03-09 23:46:59

标签: javascript jquery jquery-ui fade

我正在尝试建立这种效果,其中div不断淡入淡出。它变得棘手的是我需要那些fadeIn和fadeOut效果停止悬停。

现在,我所拥有的这段代码并没有完全消失。我需要的是覆盖?这甚至可能吗?

function animate() {
    $("#bill-items-one").fadeIn(3000);

    one = setInterval(function(){
        $("#bill-items-one").fadeOut(3000);
        $("#bill-items-one").fadeIn(3000);
    }, 6000)

    two = setInterval(function(){
        $("#bill-items-two").fadeIn(3000);
        $("#bill-items-two").fadeOut(3500);
    }, 6500)

    three = setInterval(function(){
        $("#bill-items-three").fadeIn(2000);
        $("#bill-items-three").fadeOut(4000);
    }, 6000)

    four = setInterval(function(){
        $("#bill-items-four").fadeIn(3500);
        $("#bill-items-four").fadeOut(3000);
    }, 6500)
}

animate();

$(".bill-area").hover(
    function(){
        clearInterval(one);
        clearInterval(two);
        clearInterval(three);
        clearInterval(four);
        $(".bill-item").fadeOut("fast");
    },
    function(){
        animate();
    }
);

另请参阅此链接:http://jsfiddle.net/bKKE6/

3 个答案:

答案 0 :(得分:3)

http://api.jquery.com/stop/

$(".bill-item").stop().fadeOut("fast");

答案 1 :(得分:2)

您需要stop[docs]

$(".bill-area").hover(
    function(){
        $(".bill-item").stop(true, true).fadeOut("fast");
    },
    function(){
        animate();
    }
);

See demo

答案 2 :(得分:1)

使用jQuery的.stop()来停止动画。

http://api.jquery.com/stop/