Javascript 回调后立即重复函数(Jquery)

Javascript 回调后立即重复函数(Jquery),javascript,jquery,Javascript,Jquery,所以我在我的网站上做了这个幻灯片。现在,它将屏幕外的所有图片向左移动,将第一项附加到容器的末尾,然后重复。问题是我必须设置一个比动画时间大的计时器,否则每隔一段时间就会设置一个错误的元素。当appendTo函数完成时,如何在没有延迟的情况下使其重复 它看起来像什么: Javascript: $(function(){ setInterval(function(){ var p = $(".photo-grid-slideshow .photo-crop").css('width');

所以我在我的网站上做了这个幻灯片。现在,它将屏幕外的所有图片向左移动,将第一项附加到容器的末尾,然后重复。问题是我必须设置一个比动画时间大的计时器,否则每隔一段时间就会设置一个错误的元素。当appendTo函数完成时,如何在没有延迟的情况下使其重复

它看起来像什么:

Javascript:

$(function(){
setInterval(function(){
    var p = $(".photo-grid-slideshow .photo-crop").css('width');
    $(".photo-grid-slideshow .photo-crop:first-of-type").animate({marginLeft: '-=' + p}, 3000, "linear", function(){
        $(this).css("margin-left", 0).appendTo('.photo-grid-slideshow');
    })
}, 3500);
});

只需在您的
之后再次运行它。附加到

$(function(){
  function animate(){
      var p = $(".photo-grid-slideshow .photo-crop").css('width');
      $(".photo-grid-slideshow .photo-crop:first-of-type").animate({marginLeft: '-=' + p}, 3000, "linear", function(){
        $(this).css("margin-left", 0).appendTo('.photo-grid-slideshow');
        animate(); // here we call it again
    })
  }
  animate(); // start animation
})

只需在您的
之后再次运行它。附加到

$(function(){
  function animate(){
      var p = $(".photo-grid-slideshow .photo-crop").css('width');
      $(".photo-grid-slideshow .photo-crop:first-of-type").animate({marginLeft: '-=' + p}, 3000, "linear", function(){
        $(this).css("margin-left", 0).appendTo('.photo-grid-slideshow');
        animate(); // here we call it again
    })
  }
  animate(); // start animation
})

对于这样一个想要链接动画的用例,使用类库可能非常有用。另一个好处是,与使用jQuery的原生动画功能相比,动画将更加平滑,并且更加可自定义


对于您当前的实现,如果您在脚本中包含一段HTML和CSS代码片段,则更容易提供帮助。

对于这样一个希望链接动画的用例,使用类似的库可能非常有用。另一个好处是,与使用jQuery的原生动画功能相比,动画将更加平滑,并且更加可自定义


对于您当前的实现,如果您在脚本中包含一段HTML和CSS代码片段,将更容易提供帮助。

您应该在此处或之上添加工作代码片段。您应该在此处或之上添加工作代码片段。如果您按照此路线,您只需确保元素存在,然后再尝试对其设置动画
var$elem=$(“.photo grid slideshow.photo crop:first of type”);如果($elem.length){$elem.animate(…
Thank you!像一个符咒一样工作:)如果你沿着这条路线走下去,你只需要确保元素存在,然后再尝试为它设置动画
var$elem=$(“.photo grid slideshow.photo crop:first of type”);如果($elem.length){$elem.animate(…
Thank you!像一个符咒一样工作:)