0

我正在创建一个水平代码来滚动最新的推文。通过云海 jQuery 插件输入推文。

我创建了一个动画函数,我试图使用setTimeout(doTicker, 6000);

谁能帮我看看我做错了什么?非常感谢帮助。


请参阅下面的代码...

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

在此处输入图像描述

无法让 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();

});​

谢谢乔什

4

2 回答 2

2

你有正确的代码,但是一旦它已经动画到那个值,它就不会动画 -left,所以你必须重置左 css。

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

检查:

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

于 2012-06-26T23:49:48.687 回答
0

您是否尝试在 6 秒超时的情况下递归调用 doTicker()?

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

那将是这样的:

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

setInterval(doTicker,6000);
于 2012-06-26T23:48:21.443 回答