gpt4 book ai didi

javascript - 如何让我的 javascript 函数随机选择一个函数(幻灯片),执行它,然后重复?

转载 作者:行者123 更新时间:2023-11-30 16:19:22 27 4
gpt4 key购买 nike

我有一个用于替换 html 的 javascript 代码 <div>其中包含图像,因此它变得像幻灯片放映。我在页面上有 6 个这样的幻灯片,我需要它们随机更改可能切换图像 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 秒一次。谢谢。

最佳答案

所有测试都在 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 秒,然后切换随机图像。

关于javascript - 如何让我的 javascript 函数随机选择一个函数(幻灯片),执行它,然后重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34971999/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com