我正在尝试构建一个图像幻灯片,在停止后会逐渐消失回第一个图像,但我没有得到它。有人会如此友善地指出我的解决方案吗?
以下是代码:http://codepen.io/peterschmidler/pen/hFHtJ
非常感谢!
PS
答案 0 :(得分:1)
代码:http://codepen.io/anon/pen/zJFcj
if (context.hasClass("stopshow")) {
next = context.find('.images img:first');
stopshow = true;
}else{
next = next.length ? next : context.find('.images img:first');
}
我们只是检查是否存在班级stopshow
,并使用简单的if
语句来操纵我们对next
的分配。
然后在动画回调中,我们只在stopshow
变量不为真的情况下重复
if(!stopshow) filesCrossfade(context)
答案 1 :(得分:0)
为什么重新发明轮子?试试众所周知的jQuery循环幻灯片插件。它是轻量级的,适用于移动设备,非常易于实现,并且具有许多非常有用的自定义选项。请参阅here。
答案 2 :(得分:0)
$(document).ready(function(){
function filesCrossfade(context) {
if (context.hasClass("stopshow")) {
context.find('.images img.active').removeClass('active').delay(500).fadeOut(500);
context.find('.images img:first').addClass('active').delay(500).fadeIn(500);
return;
}
if (context.find('.images img').length > 1) {
var active = context.find('.images img.active');
var next = active.next();
next = next.length ? next : context.find('.images img:first');
active.removeClass('active').delay(500).fadeOut(500);
next.addClass('active').delay(500).fadeIn(500, function() {
filesCrossfade(context) });
}
}
$(".content .slideshow").each(function(){
$(this).find('.images img').hide();
$(this).find('.images img').eq(0).fadeIn(500);
});
filesCrossfade($(".content .slideshow").eq(0));
$('.stop').click(function(){
$(".content .slideshow").eq(0).addClass("stopshow");
});
});