jQuery循环插件
答
而不是使用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;
}
});
Nick Craver在这里有一个很好的相关问题的答案:http://stackoverflow.com/a/3075104/538962 – mg1075 2012-07-14 19:33:25