【发布时间】:2016-01-24 03:50:03
【问题描述】:
我有一个 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?我需要他们一张一张地切换图像。
---------更新----------
我不确定它是否可以从上面的代码中理解,但SlideShow6 函数每次都使用不同的funcs[1] 数字重复6 次,以便它可以将所有6 个图像的幻灯片添加到funcs[] 数组中。
我是 JavaScript 的新手,但总而言之,这就是我对代码的成像方式:
需要做一个数组,所以我把所有这些函数都放进去
var funcs = [];
funcs[0] = function() {
$('#slideshow1 > div:gt(0)').hide();
setInterval(function () {
$('#slideshow1 > div:first')
.fadeOut(0)
.next()
.fadeIn(0)
.end()
.appendTo('#slideshow1');
}, 0000);
}
funcs[1] = function() {
**All the same except number slideshow1 changes to 2,3,4,5, and 6**
}
funcs[2] = function() {
}
funcs[3] = function() {
}
funcs[4] = function() {
}
funcs[5] = function() {
}
然后您需要调用它,以便创建一个数学函数,随机选择 1-6 选择哪个数字,然后该函数播放一次。然后随机在 2 秒内选择另一个数字。另一张图片幻灯片发生了变化。就是这样,永远每 2 秒。谢谢。
【问题讨论】:
-
0000insetTimeout说“等待 0 毫秒”,也就是不要等待。如果您的值为 0,不妨跳过setTimeout调用。 -
嘿@MatthewHerbst 我怎样才能取消它?如果我尝试删除
0000,那么它根本不起作用。但是我不想删除2000我希望它每2秒随机切换一次图像。
标签: javascript function loops random onload