我有一个使用很棒的循环插件运行的幻灯片,当您单击节目中的一个按钮时,我会在页面上显示一个隐藏层并发送一个“暂停”命令来循环。我有两个问题:
当接收到暂停命令时,循环立即翻转回序列中的第一张幻灯片(为什么??),并且不会击中我之前/之后的回调。
关闭图层后,我发送一个“恢复”命令循环。幻灯片继续播放(从第一张幻灯片开始,暂停的地方),但现在循环根本不会调用我的之前/之后回调,即使幻灯片正在进行。
所以我想我的问题是:我怎样才能正确地暂停/恢复幻灯片,这样这些奇怪的行为就不会发生?(为了完全清楚并避免任何混淆,这与“悬停暂停”功能无关,这实际上对我来说很好用。:-)
这是我的循环()初始化和我的回调函数。(你问我为什么要手动跟踪下一张幻灯片?因为当前幻灯片的内置值在之前/之后的回调中没有正确更新。)
$(document).ready(function() {
$('#slideshow').cycle({
fx: 'fade', // choose your transition type, ex: fade, scrollUp, shuffle, etc...
timeout: 4000, // milliseconds between slide transitions (0 to disable auto advance)
speed: 1000, // speed of the transition (any valid fx speed value)
pause: 1, // true to enable "pause on hover"
delay: 0, // additional delay (in ms) for first transition (hint: can be negative)
slideExpr: 'img', // expression for selecting slides (if something other than all children is required)
before: moveArrow, // function to call when moving to next slide
after: upd, // function to call when moving to next slide
fastOnEvent: 'fast',
});
});
var nextSlide = 0;
function upd(a, b, c) {
nextSlide = nextSlide + 1; // track which slide we're on
c = $('#slideshow img').length;
if(nextSlide > (c - 1)) nextSlide = 0; // wrap back to 1st
}
// move indicator showing which slide we're on
function moveArrow(a, b, c) {
$('#slide-indicator').attr('class', 'c'+nextSlide);
$(".clickmap").hide(); // hide other clickmaps
$(".clickmap.c"+nextSlide).show(); // show map for this slide
return true;
}
感谢您对此的任何想法-
最好的,埃里克