Javascript responsiveslides.js-为每张幻灯片指定特定的超时
我用responsiveslides.js创建了一个滑块。它包含5张不同的图像幻灯片 我通常可以指定一个超时,例如4000毫秒,但它将被指定给滑块的每个图像 我想为每张图像幻灯片指定不同的超时时间。 例如:Javascript responsiveslides.js-为每张幻灯片指定特定的超时,javascript,jquery,timeout,responsive-slides,Javascript,Jquery,Timeout,Responsive Slides,我用responsiveslides.js创建了一个滑块。它包含5张不同的图像幻灯片 我通常可以指定一个超时,例如4000毫秒,但它将被指定给滑块的每个图像 我想为每张图像幻灯片指定不同的超时时间。 例如: slide 1: timeout = 10000 slide 2: timeout = 2000 slide 3: timeout = 4000 slide 4: timeout = 4000 slide 5: timeout = 2000 我怎样才能得到呢?可能吗? 非常感谢你的帮助,也
slide 1: timeout = 10000
slide 2: timeout = 2000
slide 3: timeout = 4000
slide 4: timeout = 4000
slide 5: timeout = 2000
我怎样才能得到呢?可能吗?
非常感谢你的帮助,也很抱歉我的英语不好
我按照Timctran的建议编辑了代码,但我做错了什么。
你能帮我找出代码中的错误吗
我试着按照你的建议修改代码。我没有javascript代码方面的经验,所以我做了一些错误的事情,滑块不再工作,所以我恢复到旧版本。下面是我如何修改代码的:
// Array to enter timeout values.
var desiredTimeouts = [10000, 2000, 4000, 4000, 2000];
// Auto cycle
if (settings.auto) {
startCycle = function (i) {
rotate = setTimeout(function () {
// Clear the event queue
$slide.stop(true, true);
var idx = index + 1 < length ? index + 1 : 0;
// Remove active state and set new if pager is set
if (settings.pager || settings.manualControls) {
selectTab(idx);
}
slideTo(idx);
startCycle(index);
}, desiredTimeout[i]);
};
// Init cycle
startCycle(index);
}
// Restarting cycle
restartCycle = function () {
if (settings.auto) {
// Stop
clearTimeout(rotate);
// Restart
startCycle(index);
}
};
//用于输入超时值的数组。
var DesiredTimeout=[10000,2000,4000,4000,2000];
//自动循环
if(settings.auto){
开始循环=功能(i){
旋转=设置超时(函数(){
//清除事件队列
$slide.stop(true,true);
var idx=指数+1<长度?指数+1:0;
//如果设置了寻呼机,则删除活动状态并设置新
if(settings.pager | | settings.manualControls){
选择标签(idx);
}
slideTo(idx);
起始周期(指数);
},期望超时[i]);
};
//初始循环
起始周期(指数);
}
//重新启动循环
restartCycle=函数(){
if(settings.auto){
//停止
清除超时(旋转);
//重新启动
起始周期(指数);
}
};
如果您能帮我修改代码,我们将不胜感激。谢谢 在
responsiveslides.js
中有一个名为旋转
(第232行)的函数。在代码的这一部分中,进行您在此处看到的任何更改:
// Array to enter timeout values.
var desiredTimeouts = [10000, 2000, 4000, 4000, 2000];
// Auto cycle
if (settings.auto) {
startCycle = function (i) {
rotate = setTimeout(function () {
// Clear the event queue
...
slideTo(idx);
startCycle(index);
}, desiredTimeout[i]);
};
// Init cycle
startCycle(index);
}
...
clearTimeout(rotate);
startCycle(index);
...
clearTimeout(rotate);
对脚本所做更改的摘要:
所需超时的行
setInterval
更改为setTimeout
startCycle
的调用clearInterval
的两个实例更改为clearTimeout
索引
作为startCycle
的参数调用多亏了Timctran,我才有了最终的解决方案 打开responsiveslides.js文件并转到第227行(responsiveslides.js版本1.54) 使用下面的代码更正现有代码。 在var desiredTimeout中插入所需的超时,用逗号分隔
// Array to enter timeout values.
var desiredTimeout = [10000, 4500, 4500, 4500];
// Auto cycle
if (settings.auto) {
startCycle = function (i) {
rotate = setTimeout(function () {
// Clear the event queue
$slide.stop(true, true);
var idx = index + 1 < length ? index + 1 : 0;
// Remove active state and set new if pager is set
if (settings.pager || settings.manualControls) {
selectTab(idx);
}
slideTo(idx);
startCycle(index);
}, desiredTimeout[i]);
};
// Init cycle
startCycle(index);
}
// Restarting cycle
restartCycle = function () {
if (settings.auto) {
// Stop
clearTimeout(rotate);
// Restart
startCycle(index);
}
};
// Pause on hover
if (settings.pause) {
$this.hover(function () {
clearTimeout(rotate);
}, function () {
restartCycle();
});
}
//用于输入超时值的数组。
var desiredTimeout=[10000,4500,4500,4500];
//自动循环
if(settings.auto){
开始循环=功能(i){
旋转=设置超时(函数(){
//清除事件队列
$slide.stop(true,true);
var idx=指数+1<长度?指数+1:0;
//如果设置了寻呼机,则删除活动状态并设置新
if(settings.pager | | settings.manualControls){
选择标签(idx);
}
slideTo(idx);
起始周期(指数);
},期望超时[i]);
};
//初始循环
起始周期(指数);
}
//重新启动循环
restartCycle=函数(){
if(settings.auto){
//停止
清除超时(旋转);
//重新启动
起始周期(指数);
}
};
//悬停
如果(设置。暂停){
$this.hover(函数(){
清除超时(旋转);
},函数(){
重启循环();
});
}
我的回答对你有帮助吗?当我测试它时,它工作了。我试着按照你的建议修改代码。我没有javascript代码方面的经验,所以我做了一些错误的事情,滑块不再工作,所以我恢复到旧版本。我在第一个问题中编写了更改后的代码。您定义了DesiredTimeout(带s),但后来引用了单数。因此,将desiredTimeout[i]更改为desiredTimeout[i]。在您上面提到的部分之后,需要更改额外的clearInterval。我已经添加了必要的更改,希望一个简单的替代品将为您工作。非常感谢!现在一切正常。我在下面添加了完整的代码。也许你可以投票认为我的答案对你有帮助。它基本上是完整的代码,只是为了清晰起见而缩短了。我试着按照你的建议修改代码。我没有javascript代码方面的经验,所以我做了一些错误的事情,滑块不再工作,所以我恢复到旧版本。我在第一个问题中写了修改后的代码。4年后,这正是我想要的。先生,你真是个笨蛋!