2017-06-14 96 views
0

如何显示div 2秒,然后在无限循环中隐藏它4秒?我使用jQuery的animate()函数,因为我也想使用CSS转换。jQuery显示div 2秒,然后在循环中隐藏4秒

function animatedText() { 
    setTimeout(function() { 
     $('.text').animate({ opacity: 1 }, 200, function() { 
      setTimeout(function() { 
       $('.text').animate({ opacity: 0 }, 200); 
      }, 1800); 
     }); 
    }, 3800); 
} 
setInterval(animatedText(), 6000); 

这里是我的小提琴:https://jsfiddle.net/od6gm8t3/

+2

你'setInterval'不运行任何东西,因为号召'animatedText'不返回任何东西。如果应该每6秒调用一次'animatedText',那么你需要编写'setInterval(animatedText,6000)'。而不是使用间隔和超时,你应该使用jQuery的'延迟'功能和动画的结束回调。 –

+0

我明白了。谢谢! – Plastik

回答

1

我希望这会帮助你。请检查下面的代码。

function animatedText() { 
 
    $('.text').animate({ opacity: 1 }, 200, function() { 
 
      setTimeout(function() { 
 
       $('.text').animate({ opacity: 0 }, 200); 
 
      }, 2000); 
 
    }); 
 
    setTimeout(function() { 
 
     animatedText(); 
 
    },6000); 
 
} 
 
animatedText();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<i class="text">Animated Text</i>

+0

谢谢!这几乎是我需要的。问题是只要我调用函数就会显示div。我的意思是它不等待4秒,但我想我可以在窗口加载时调用setTimeout函数内的函数。对? – Plastik

+0

你能告诉我你的代码吗,所以我可以帮助你更好。 –

+0

我的意思是:https://jsfiddle.net/od6gm8t3/1/有没有更好的方法在函数内部做到这一点?您的代码只要功能名为 – Plastik