如何设置多个超时?
请帮助我...
timeout:'1000, 2000, 3000'
这不起作用。
答案 0 :(得分:2)
不应使用timeout
属性,而应使用timeoutFn
并定义一个函数,该函数返回等待下一张幻灯片的毫秒数。
例如,如果你只有3张幻灯片而你想要使用的那3次超时(1000,2000,3000),那么我认为在最后一次超时之后你想要再次使用第一次超时(每张图片都有时间留下来屏幕)。所以在这种情况下代码就是:
$('#s1').cycle({
timeoutFn: function (curr, next, opts, isForward) {
return (opts.currSlide + 1) * 1000;
}
});
另一方面,如果你想设置3个以上的幻灯片,那么你可以使用自己的属性(如数组和计数器)并在函数内部使用它们来计算相应的超时:
$('#s1').cycle({
timeoutFn: function(currElement, nextElement, opts, isForward) {
opts.myTimeoutCount = (opts.myTimeoutCount + 1) % opts.myTimeouts.length;
return opts.myTimeouts[opts.myTimeoutCount];
},
myTimeouts: [1000, 2000, 3000],
myTimeoutCount: 0
});
最后,如果不希望在上次超时后显示任何其他幻灯片,那么您应该只使用autostop
& autostopCount
属性:
$('#s1').cycle({
autostop: true,
autostopCount: 3,
timeoutFn: function (curr, next, opts, isForward) {
return (opts.currSlide + 1) * 1000;
}
});