我想淡入图像,等待几毫秒和fadeOut图像,我想用少量图像做这个,我也想循环这个。我的想法是为每个循环执行此操作,但它不起作用。我写了这个:
function showDiv() {
if($('.header_img a:not(:contains(shown))').length) {
var current = ($('.header_img a:not(:contains(shown)):first'));
$(current).fadeIn(1500).delay(4000).fadeOut(1500);
$(current).addClass('shown');
setTimeout(showDiv, 1000);
}
}
showDiv();
编辑: 非常感谢所有答案:)但是,我自己做了一些事情:
$(document).ready(function(){
var current = ($('.header_img a:first-child'));
var counter = 0;
var n = $(".header_img a").length;
function showDiv(current) {
if(counter<n-1 )
{
counter++;
$(current).fadeIn(1500).delay(4000).fadeOut(1500, function(){
current=$(current).next();
showDiv(current);
})
}
else{
counter = 0;
$(current).fadeIn(1500).delay(4000).fadeOut(1500, function(){
current=($('.header_img a:first-child'));
showDiv(current);
})
}
}
showDiv(current);
});
......它有效!
答案 0 :(得分:0)
您可以在动画完成时指定回调:http://api.jquery.com/fadeIn/
答案 1 :(得分:0)
试试这个
var fader = {
init: function() {
this.firstLi = jQuery('#images ul li:first').attr('id');
this.lastLi = jQuery('#images ul li:last').attr('id');
},
doFade: function() {
this.currID = jQuery('#images ul').data('currLI');
this.currLiStr = '#images ul li#' + fader.currID;
this.nextID = (this.currID == this.lastLi) ? this.firstLi : jQuery(fader.currLiStr).next().attr('id');
this.nextLiStr = jQuery('#images ul li#' + fader.nextID);
jQuery(fader.currLiStr).fadeOut(3000);
jQuery(fader.nextLiStr).fadeIn(2000);
jQuery('#images ul').data('currLI',fader.nextID);
}
}
叫做:
var firstLi = jQuery('#images ul li:first').attr('id');
jQuery('#images ul').data('currLI',firstLi);
fader.init();
setInterval('fader.doFade()',10000);
}