Javascript 每个循环淡入淡出动画中的jQuery异步行为

Javascript 每个循环淡入淡出动画中的jQuery异步行为,javascript,jquery,asynchronous,async-await,Javascript,Jquery,Asynchronous,Async Await,我对JS的异步行为有一个小问题。我的计划是循环浏览一些隐藏的图像,并用指定的淡入淡出时间淡入淡出。我尝试了以下代码: jQuery('.fader img').each(function(x, y) { var faderImg = jQuery(y); faderImg.fadeIn(400).delay(1000).fadeOut(400); }); 我的问题是,它不等待最后一个链式淡出语句的执行,而是同时在每张图片上进行动画。我用async和Wait也试过了,但它没有

我对JS的异步行为有一个小问题。我的计划是循环浏览一些隐藏的图像,并用指定的淡入淡出时间淡入淡出。我尝试了以下代码:

jQuery('.fader img').each(function(x, y) {

    var faderImg = jQuery(y);
    faderImg.fadeIn(400).delay(1000).fadeOut(400);

});
我的问题是,它不等待最后一个链式淡出语句的执行,而是同时在每张图片上进行动画。我用async和Wait也试过了,但它没有解决我的问题,相反,它的行为与上面描述的相同

jQuery('.b1-img-fader img').each(async function(x, y) {

  var faderImg = jQuery(y);
  await faderImg.fadeIn(400).delay(1000).fadeOut(400);

});
是否有人可以帮助存档每个图像都在淡入淡出之前的图像完成后淡入淡出?只有当内部功能完成时,循环才能开始下一个回合


谢谢你的帮助

假设您希望每个图像单独设置动画,则需要延迟每个后续图像,并花费时间来完成之前的所有图像

为此,可以通过将当前图像的索引乘以动画所用的时间来获得延迟量,如下所示:

$('.b1-img-fader img').each(function(index, el) {
  $(this).delay(index * 1800).fadeIn(400).delay(1000).fadeOut(400);
});

假设希望每个图像单独设置动画,则需要延迟每个后续图像,并花费一定的时间来完成之前的所有图像

为此,可以通过将当前图像的索引乘以动画所用的时间来获得延迟量,如下所示:

$('.b1-img-fader img').each(function(index, el) {
  $(this).delay(index * 1800).fadeIn(400).delay(1000).fadeOut(400);
});
您可以在开始时添加
延迟(x*1800)
。(删除异步/等待):
$(此).delay(x*1800).fadeIn(400).delay(1000).fadeOut(400)
您可以在开始时添加
延迟(x*1800)
。(删除异步/等待):
$(此).delay(x*1800).fadeIn(400).delay(1000).fadeOut(400)