jQuery在列表中选择下一个div来显示

时间:2010-02-06 00:59:54

标签: jquery list random timer

我有一些jQuery在这里:

$('#ticker1').hide();
$('#ticker2').hide();
$('#ticker3').hide();

$("#ticker").oneTime(2000,function(i) { /* Do the first pull out once */

    var randomNum = Math.floor(Math.random()*3); /* Pick random div to show */
    $('div#ticker div:eq(' + randomNum + ')').show();

    $("#ticker").animate({right: "0"}, {duration: 800 });

});

$("#ticker").oneTime(20000,function(i) { /* Do the first retract once */

    $("#ticker").animate({right: "-450"}, {duration: 800});

    $("#ticker").oneTime(1000,function(i) { 

        $('#ticker1').hide();

    });

});

$("#ticker").everyTime(21500,function(i) { /* Everytime timer gets to certain point */

    var randomNum = Math.floor(Math.random()*3);
    $('div#ticker div:eq(' + randomNum + ')').show();

    $("#ticker").animate({right: "0"}, {duration: 800}); /* Pull out right away */

    $("#ticker").oneTime(20000,function(i) { /* Retract once */

        $("#ticker").animate({right: "-450"}, {duration: 800});

    });

    $("#ticker").oneTime(21000,function(i) { /* Hide all divs once */

        $('#ticker1').hide();
        $('#ticker2').hide();
        $('#ticker3').hide();

    });

});

我试图让它在第一次拉出时显示一个随机div,这已经在代码的第一部分完成了。但是在那之后我现在每次都抓住一个随机div(3个div中)。我需要更改代码的这一部分,以便查看3个div的列表,并且每次都进入下一个div。

因此,如果第一次拉出的div是2然后每次都会按此顺序进行:div 3,div 1,div 2,div 3,div 1等。

以下是现在正在进行的演示:treethink.treethink.net/backup

谢谢, 涉

1 个答案:

答案 0 :(得分:0)

而不是每次生成一个新的随机数,先生成它然后用mod 3递增它,这样你就会按顺序得到下一个div。

例如,如果您的随机数生成2,则下一个将是3%3 = 0,然后1%3 = 1然后2%3 = 2,依此类推。

var randomNum = Math.floor(Math.random()*3);

$("#ticker").everyTime(21500,function(i) { /* Everytime timer gets to certain point */

randomNum = (randomNum+1)%3;

$('div#ticker div:eq(' + (randomNum) + ')').show();


$("#ticker").animate({right: "0"}, {duration: 800}); /* Pull out right away */


$("#ticker").oneTime(20000,function(i) { /* Retract once */

    $("#ticker").animate({right: "-450"}, {duration: 800});

});

$("#ticker").oneTime(21000,function(i) { /* Hide all divs once */

    $('#ticker1').hide();
    $('#ticker2').hide();
    $('#ticker3').hide();

});
});