我正在处理一个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
找到它提前致谢!
答案 0 :(得分:1)
在完成动画(更改不透明度值)后调用回调。
因此,如果删除回调并在动画之后直接追加它,它将在动画完成之前删除类。
否则,如果完全删除回调,则会丢失删除类的方法(当然是XD“)
答案 1 :(得分:1)
该回调正在从以前的活动幻灯片($active
)中删除这些类。
$next
成为新的活动幻灯片(并从animate
之前的语句中获取类。)
如果代码没有从$active
中移除该类,则在完成所有操作后将会有两个活动幻灯片。