为什么我需要这个回调函数才能正常工作?

时间:2010-10-01 19:14:47

标签: jquery callback slider

我正在处理一个jQuery图像滑块教程,我在它们在.animate()选项上放置一个Callback函数时丢失了它们 - 回调是removeClass。我为什么需要它?如果我取消回调功能,滑块将停止工作。

function slideSwitch() { var $active = $('#slideshow IMG.active'); var $next = $active.next();

$active.addClass('last-active');

$next.css({opacity: 0.0})
    .addClass('active')
    .animate({opacity: 1.0}, 1000, function() {
        $active.removeClass('active last-active');
    });

}

$active.addClass('last-active'); $next.css({opacity: 0.0}) .addClass('active') .animate({opacity: 1.0}, 1000, function() { $active.removeClass('active last-active'); });

这是滑块的工作方式:

基本上,有3个图像(绝对)位于彼此之上。第一个图像被赋予具有高z-index的“活动”类,因此它显示在顶部。

5秒后,代码然后找到下一个图像并使该类成为“活动”,并使原始的“.last-active”具有略低的z-index。新的“.active”的不透明度为0.0,但在一秒钟内慢慢动画为1.0。

实际上,这是一个非常简单的滑块。除了为什么我需要那个在animate完成后删除“last-active”和“active”类的回调函数,我理解了其他所有内容。是不是“.active”需要保持“.active”才能保持最佳状态?

如果您自己看过本教程,可能会对您有所帮助。可以在http://jonraasch.com/blog/a-simple-jquery-slideshow

找到它

提前致谢!

2 个答案:

答案 0 :(得分:1)

在完成动画(更改不透明度值)后调用回调。

因此,如果删除回调并在动画之后直接追加它,它将在动画完成之前删除类。

否则,如果完全删除回调,则会丢失删除类的方法(当然是XD“)

答案 1 :(得分:1)

该回调正在从以前的活动幻灯片($active)中删除这些类。

$next成为新的活动幻灯片(并从animate之前的语句中获取类。)

如果代码没有从$active中移除该类,则在完成所有操作后将会有两个活动幻灯片。