2016-06-21 76 views
0

我目前正在修改这段代码作为项目的一部分,它对我需要它做的很好,但是我想要一个相对较短的过渡期,但初始div元素仅在短时间内显示并且淡入淡出过程开始。如何延迟滑块上的第一个淡入事件

我想知道是否有人可以帮我纠正这个问题。理想情况下,我想设置初始滑块时间表或触发过程延迟它,

var divs = $('.fade'); 

function fade() { 
var current = $('.current'); 
var currentIndex = divs.index(current), 
    nextIndex = currentIndex + 1; 

if (nextIndex >= divs.length) { 
    nextIndex = 0; 
} 

var next = divs.eq(nextIndex); 
    current.stop().fadeOut(500, function() { 
    $(this).removeClass('current'); 
    setTimeout(fade, 5000); 
}); 

next.stop().fadeIn(500, function() { 
    $(this).addClass('current'); 
}); 
} 
fade(); 
+0

难道你只是在最初的淡出调用上执行'setTimeout(fade,5000);'。 –

+0

我应该把它添加到?仍然找到我的方式围绕这种类型的编码 – mcktj

回答

0

从开始就延迟功能fade()只是做:

var divs = $('.fade'); 

function fade() { 
.... 
} 
setTimeout(fade, 5000); //here is the only change 

在你的代码的末尾fade()立即执行。只需添加一个超时。 5000以毫秒为单位,只需将其切换到所需的延迟时间即可。


除了你的问题,如果你想申请的淡入淡出功能,你点击后,才向对象,你可以这样做。

$('.fade').on('click',function(){//instead of click you could use any event ex. mouseover 
    fade();//call fade function 
}); 
+0

这是一个有用的代码:) – mcktj

+0

做了顶部的工作@ mcktj –

+0

是 - 像一个魅力非常感谢你,正是我期待的效果:) – mcktj