我有一个javascript代码,用于替换包含图片的html <div>
,因此它就像幻灯片一样。我在页面上有六个这样的幻灯片,我需要他们随机改变切换图像3然后6然后2等等。
$(document).ready(function(){
SlideShow6();
});
function SlideShow6() {
$('#slideshow6 > div:gt(0)').hide();
setInterval(function () {
$('#slideshow6 > div:first')
.fadeOut(0)
.next()
.fadeIn(0)
.end()
.appendTo('#slideshow6');
}, 0000);
}
结尾的时间是0000
(0)秒。因为我需要计时器在选择随机幻灯片滑动之前暂停2000
(2)秒。我用这个尝试了我的脚本:
var funcs = [];
funcs[0] = function() {
$('#slideshow6 > div:gt(0)').hide();
setInterval(function () {
$('#slideshow6 > div:first')
.fadeOut(0)
.next()
.fadeIn(0)
.end()
.appendTo('#slideshow6');
}, 0000);
}
funcs[1] = function() {
$('#slideshow5 > div:gt(0)').hide();
setInterval(function () {
$('#slideshow5 > div:first')
.fadeOut(0)
.next()
.fadeIn(0)
.end()
.appendTo('#slideshow5');
}, 0000);
}
//等等六次...... 然后...
$(document).ready(function(){
var rand = parseInt(Math.random()*funcs.length);
funcs[rand]();
setTimeout(arguments.callee, 2000);
});
它变得非常奇怪,它随机选择我的功能,但它无限次地执行幻灯片放映,并且很快就会有六个它们开启和运行。也许是因为0000
?我需要它们逐个切换图像。
---------- ---------- UPDATE
我不确定上面的代码是否可以理解,但SlideShow6
函数每次重复6次,每次都有funcs[1]
个不同的数字,以便它可以将所有6张图片的幻灯片添加到{ {1}}数组。
我是JavaScript的新手,但在文字中这是我对代码进行成像的方式:
需要制作一个数组,以便将所有这些功能放入其中
funcs[]
然后你需要调用它,所以做一个数学函数,选择1-6随机选择任何数字然后函数播放一次。然后随机选择在2秒内选择另一个数字。另一张图片幻灯片改变了。这就是永远每2秒一次。谢谢。
答案 0 :(得分:2)
所有在Chrome控制台中完成的测试:
将setInterval
的第二个参数设置为0
会导致该函数无限次运行。我不知道为什么 - 我希望这个功能能够立即运行一次。
您可以通过执行以下操作在控制台中看到此内容:
setInterval(function () {
console.log('Crazy');
}, 0000);
(为了简洁起见,我已经删除了这篇文章的一些迭代,因为它们被问题OP认为是不够的。)
更新2:
var funcs = [];
funcs[0] = function() {
$('#slideshow6 > div:gt(0)').hide();
$('#slideshow6 > div:first')
.fadeOut(0)
.next()
.fadeIn(0)
.end()
.appendTo('#slideshow6');
}
funcs[1] = ...;
funcs[2] = ...;
funcs[3] = ...;
funcs[4] = ...;
funcs[5] = ...;
$(document).ready(function() {
window.setInterval(function() {
var rand = Math.floor(Math.random() * funcs.length);
funcs[rand]();
}, 2000);
});
我认为这是一个更优雅的解决方案。这是做什么的:永远循环。每次循环迭代,等待2秒,然后切换随机图像。