我有这个片段让我的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/
答案 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);
});