Я пытаюсь воспроизвести короткую анимацию в стиле рекламы, когда пользователи прокручиваются вниз до определенного элемента на странице. Идея заключалась бы в непрерывном цикле, пока определенная область страницы видна, и предпочтительно приостанавливать ее, когда это не так.Функция Loop в jQuery, пока элемент виден
То, что я до сих пор:
(function($){
$.fn.splash = function() {
$(".lb").fadeIn("slow");
$(".button").delay(200).fadeIn("slow");
$(".t1").animate({left:"-=300"},1000);
$(".t2").delay(500).animate({left:"-=300"},1000);
$(".t3").delay(1000).animate({left:"-=300"},1000);
$(".t1").delay(2800).animate({left:"-=400"},400);
$(".t2").delay(2350).animate({left:"-=400"},400);
$(".t3").delay(1900).animate({left:"-=400"},400);
$(".t4").delay(3800).animate({left:"-=300"},1000);
$(".t5").delay(4000).animate({left:"-=300"},1000);
$(".t4").delay(3000).animate({left:"-=400"},400);
$(".t5").delay(2900).animate({left:"-=400"},400);
$(".t6").delay(7500).animate({left:"-=300"},1000);
$(".t7").delay(7700).animate({left:"-=300"},1000);
$(".t6").delay(3000).animate({left:"-=400"},400);
$(".t7").delay(2900).animate({left:"-=400"},400);
$(".t8").delay(11500).animate({left:"-=300"},1000);
$(".t8").delay(5000).animate({left:"-=400"},400);
$(".arrow").delay(12000).fadeIn(400);
$(".button").delay(11500).animate({top:"-=30"},700);
$(".arrow").delay(5000).animate({left:"-=400"},400);
$(".button").delay(4600).animate({left:"-=400"},400);
setTimeout(splash(), 18000);
};
})(jQuery);
$(window).scroll(function() {
if ($('#splash').is(':visible')) {
$('#splash').splash();
}
});
Это начинает играть функцию, когда #splash ДИВ виден, но не цикл его. Как я могу заставить это работать?
(Это даже лучший способ выложить весь этот анимационный код?)
Благодаря
В этом SetTimeout вы не может просто вызвать splash() и ожидать, что JS узнает, что вы хотите назвать. '$ (this) .splash();' или '$ ('# splash'). splash();' но не просто 'splash()'; – Popnoodles