jQuery:随机化淡化div(无论项目数量)

时间:2014-07-21 15:57:16

标签: javascript jquery html slider fadein

我有这个片段让我的divs" slide"每3秒钟一次:

$(function(){
    $('.fadein p:gt(0)').hide();
    setInterval(function(){$('.fadein > :first-child').fadeOut().next('p').fadeIn().end().appendTo('.fadein');}, 3000);
});

<div class="fadein">
    <p><img src="">image1</p>
    <p><img src="">image2</p>
    <p><img src="">image3</p>
</div>

我想随机化显示的div的顺序..问题是div的数量每次都不一样..所以我不能使用

setInterval(function() {
  var number = 1 + Math.floor(Math.random() * 3);
  ...

因为它并不总是3 ..我不能每次都改变脚本。你能救我吗?

这是一个小提琴:http://jsfiddle.net/S4SmM/4/

1 个答案:

答案 0 :(得分:1)

使用jQuery Length属性。它会获得你拥有的div数量,你可以像你想要的那样使用Math.random函数。

修改

我已编辑了您的fiddle,让它按照我的意愿行事。它有点问题,有时会连续几次显示相同的图片,但我会让你决定如何处理它。

这里的代码也是

$(function () {
$('.fadein p:gt(0)').hide();
setInterval(function () {
    var randomize = 1 + Math.floor(Math.random() * $('.fadein > p').length);
    $('.fadein > p').fadeOut();
    $('.fadein > :nth-child(' + randomize + ')').fadeIn();
}, 3000);
});