问题出在以下代码部分:
if(typeof click != "undefined")
config.auto = false;
在您使用任何导航后,它会有效地停止轮播。要解决这个问题,您需要:
编辑添加动画超时重置:
添加将存储超时以及超时是否处于活动状态的变量:
var myTimer, timerActive = false;
紧接着var li = ul.children('li');
代替:
if(typeof click != "undefined")
config.auto = false;
if(config.auto!=false)
setTimeout(function() {
slide('next');
}, config.auto);
和:
if(typeof click != "undefined"){
if(config.auto!=false){
if (timerActive) clearTimeout(myTimer);
myTimer = setTimeout(function() {
slide('next');
}, config.auto * 2);
}
timerActive = true;
}
else{
if(config.auto!=false){
if (timerActive) clearTimeout(myTimer);
myTimer = setTimeout(function() {
slide('next');
}, config.auto);
timerActive = true;
}
}
并在轮播代码的最后替换:
if(config.auto!=false)
setTimeout(function() {
slide('next');
}, config.auto);
和:
if(config.auto!=false){
if (timerActive) clearTimeout(myTimer);
myTimer = setTimeout(function() {
slide('next');
}, config.auto);
timerActive = true;
}
----结束编辑----
请注意,我实际上没有测试过任何这些 - 可能有错别字等。如果它不起作用,你可以随时尝试为 jQuery 旋转木马我写了https://github.com/c2h5oh/jQuery-Cycle-Uber-精简版