Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
元素可见时在jQuery中循环函数_Jquery_Jquery Animate - Fatal编程技术网

元素可见时在jQuery中循环函数

元素可见时在jQuery中循环函数,jquery,jquery-animate,Jquery,Jquery Animate,当用户向下滚动到页面中的特定元素时,我尝试播放一个简短的广告式动画。这样做的想法是在页面的特定区域可见时不断循环,最好在不可见时暂停 到目前为止,我得到的是: (function( $ ){ $.fn.splash = function() { $(".lb").fadeIn("slow"); $(".button").delay(200).fadeIn("slow"); $(".t1").animate({left:"-=300"},1000); $(".

当用户向下滚动到页面中的特定元素时,我尝试播放一个简短的广告式动画。这样做的想法是在页面的特定区域可见时不断循环,最好在不可见时暂停

到目前为止,我得到的是:

(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 div可见但不循环时,该函数开始播放。我怎样才能让它工作呢

(这是展示所有动画代码的最佳方式吗?)

谢谢


根据需要设置时间(代替75)

+1这更有意义,但函数中仍有一个对splash()的调用将出错。我尝试过,但仍然没有重复。我是否需要在splash函数中保留setTimeout?如果是这样的话,它需要是
setTimeout($(this).splash()”,18000)?在setTimeout中,您不能只调用splash()并期望JS知道您要调用它的内容<代码>$(this.splash()
$('#splash')。splash()而不仅仅是
splash()
var Interval='';
$(window).scroll(function() {

if ($('#splash').is(':visible')) {
    clearInterval(Interval);
    Interval = setTimeout(function(){
       if($('#splash').is(':visible'))$('#splash').splash();
       else clearInterval(Interval);
    },75);
    }
});