jQuery:setInterval动画?

时间:2010-05-19 15:19:48

标签: jquery animation setinterval

目前我正在尝试进行某种垂直自动滚动。这是我的代码

$(document).ready(function() {
var reachEnd = false;
var top = 0;
function animateMargin(){
    if(top == -720){
        reachEnd = true;
    }
    if(reachEnd == false){
        $('#bslider').animate({'marginTop' : '-=240px'}, 500);
        top -=240;
    }else{
        $('#bslider').animate({'marginTop' : '0px'}, 1000);
        top = 0;
        reachEnd = false;
    }
};
marginInterval = setInterval('animateMargin()', 5000);
$('#banner').hover(function(){
    clearInterval( marginInterval );
    },
    function(){
        marginInterval = setInterval('animateMargin()', 5000);
    });
});

它根本不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您似乎错误地将function回调传递给了setInterval。试试这个。

setInterval( animateMargin, 5000 );

答案 1 :(得分:1)

setInterval()采用回调函数。 通过()传递animateMargin(),您已经传入了函数调用的结果,这是函数的返回值。 相反,您应该将函数本身作为 animateMargin

传递