悬停时动画

时间:2012-06-07 02:31:08

标签: javascript jquery animation

如何让hover()持续运行?当我将鼠标悬停在#up_btn上时,我希望top属性保持动画效果。现在,它只运行一次。

$(document).ready(function(){
    $("#up_btn").hover(function(){
        var new_num = parseInt($("#move_box").css("top"));
        $("#move_box").css("top", new_num + 1);
    })
})

3 个答案:

答案 0 :(得分:2)

您可以使用setInterval重复运行代码,然后使用clearInterval停止动画:

$(document).ready(function() {
    var timer;

    $("#up_btn").hover(function() {
        timer = setInterval(function() {
            $("#move_box").css('top', '+= 1');
        }, 100); // Change the interval as you see fit.
    }, function() {
        clearInterval(timer);
    });
});

答案 1 :(得分:1)

使用setIntervalsetTimeout。例如:

var move_box_interval;
$(document).ready(function() {
    $("#up_btn").hover(function() {
        // Change the interval to be appropriate. It's in milliseconds.
        move_box_interval = setInterval(move_box, 100);
    });

    // Change this to the appropriate trigger.
    $("#up_btn").mouseout(function() {
        clearInterval(move_box_interval);
    });
});

function move_box() {
    $("#move_box").css("top", "+= 1");
}

答案 2 :(得分:0)

$(document).ready(function() {
    $("#up_btn").mouseenter(function() {
        var new_num = parseInt($("#move_box").css("top"));
        $("#move_box").css("top", new_num + 1);
    })
})