jQuery无法使用setTimeout获取循环/循环的动画功能?鸣叫Ticker

时间:2012-06-26 23:38:15

标签: jquery

我创建了一个水平滚动条以滚动最新的推文。通过Sea of clouds jQuery plugin提供推文。

我创建了一个动画功能,我尝试使用setTimeout(doTicker, 6000);

进行循环

任何人都可以帮我看看我做错了什么吗?非常感谢,谢谢。


见下面的代码......

还创造了小提琴。 http://jsfiddle.net/motocomdigital/h4x8D/1/

enter image description here

无法让doTicker循环/循环

$(".tweetbar-ticker").tweet({

    username: "twitter",
    join_text: "auto",
    count: 1,
    auto_join_text_default: "we said,",
    auto_join_text_ed: "we",
    auto_join_text_ing: "we were",
    auto_join_text_reply: "we replied to",
    auto_join_text_url: "we were checking out",
    loading_text: "loading tweets..."

}).bind("loaded", function() {

    $('.tweetbar-ticker ul li').clone().appendTo('.tweetbar-ticker ul');

    var $tweetBar = $('.tweetbar-ticker'),
        tweetLength = $('.tweetbar-ticker ul li').outerWidth(),
        $tweetAnchor = $('.tweetbar-ticker ul li a');

    $tweetBar.css({
        'width': tweetLength * 2 + 'px'
    });

    $tweetAnchor.attr({
        target: "_blank"
    });

    function doTicker() {

        $tweetBar.animate({
            'left': '-' + tweetLength + 'px'
        }, 20000, 'linear');

        setTimeout(doTicker, 6000);
    }

    doTicker();

});​

由于 约什

2 个答案:

答案 0 :(得分:2)

你有正确的代码,但只要它已经动画化为该值,它就不会生成动画 - 所以你必须重置左css。

其次,最好将其称为回调而不是setTimeout ...

检查:

http://jsfiddle.net/h4x8D/2/

答案 1 :(得分:0)

你试图以6秒的超时递归调用doTicker()吗?

如果是这样,为什么不使用setInterval

就是这样:

function doTicker() {
    $tweetBar.animate({
        'left': '-' + tweetLength + 'px'
    }, 20000, 'linear');
}

setInterval(doTicker,6000);