Javascript/Jquery中的setTimeout
我正在尝试测试一个fadein和fadeout函数,该函数使用不同的内容在周围循环Javascript/Jquery中的setTimeout,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试测试一个fadein和fadeout函数,该函数使用不同的内容在周围循环 var next = null; var outer = $('.twitter'); var current = outer.find('.twitterinner:first'); current.fadeIn(); function fade() { if (current.next('div.twitterinner').length > 0)
var next = null;
var outer = $('.twitter');
var current = outer.find('.twitterinner:first');
current.fadeIn();
function fade() {
if (current.next('div.twitterinner').length > 0) {
next = current.next('div.twitterinner');
} else {
next = outer.find('div.twitterinner:first');
}
current.fadeOut(500);
setTimeout(function(){
next.FadeIn(500);
},1000);
// next.fadeIn(500);
current = next;
setTimeout(fade, 2000);
}
fade();
还有html
<div class="col-xs-12 col-md-12 padding twitter">
<div class="twitterinner">Jellyfish Webdesign was afgelopen weekend aanwezig bij #YoutopiaArtsFestifal in het #Lloydhotel in A'dam! De website hebben we gesponsord.<br></div>
<div class="twitterinner">Laat uw email adres achter via http://t.co/MHUXpcY1NE om op de hoogte te blijven van onze nieuwe website release. #Jellyfishux<br></div>
<div class="twitterinner">Jellyfish Webdesign is vandaag officieel live gegaan! Voor meer informatie bezoek onze website, http://t.co/MHUXpcY1NE #jellyfishux<br></div>
</div>
“水母”网站设计是一个开放式周末,aanwezig bij#Youtopiartsfestifal在het#Lloydhotel在A'dam!我们赞助的网站。
Laat uw电子邮件地址:通过http://t.co/MHUXpcY1NE om op de hoogte te blijven van onze nieuwe网站发布#水母糖
水母网站设计是vandaag officieel live gegaan!Voor meer informatie bezoek onze网站,http://t.co/MHUXpcY1NE #水母糖
如果我在启动后删除setTimeout,它会正常运行(并且我再次包含了fadeIn),但是一旦我添加了setTimeout和fadeIn函数,它就会停止工作。我似乎找不到哪里出错了。有人能给我指出正确的方向吗?如果你想在动画之后执行一些东西,你可以这样做(链接) 要循环,我建议您使用interval而不是setTimeout
setInterval(fade, 2000);
如果要在动画之后执行某些操作,可以这样做(链接) 要循环,我建议您使用interval而不是setTimeout
setInterval(fade, 2000);
我认为您必须使用
setInterval()
而不是setTimeout()
,因为您的函数会被重复调用。请参阅下面的代码
注意-请更正fadeIn(500)
的拼写,它以小的f
开头
var next = null;
var outer = $('.twitter');
var current = outer.find('.twitterinner:first');
current.fadeIn();
function fade() {
if (current.next('div.twitterinner').length > 0) {
next = current.next('div.twitterinner');
} else {
next = outer.find('div.twitterinner:first');
}
current.fadeOut(500, function(){
next.fadeIn(500);
current = next;
});
}
setInterval(fade,2000);
我认为您必须使用
setInterval()
而不是setTimeout()
,因为您的函数会被重复调用。请参阅下面的代码
注意-请更正fadeIn(500)
的拼写,它以小的f
开头
var next = null;
var outer = $('.twitter');
var current = outer.find('.twitterinner:first');
current.fadeIn();
function fade() {
if (current.next('div.twitterinner').length > 0) {
next = current.next('div.twitterinner');
} else {
next = outer.find('div.twitterinner:first');
}
current.fadeOut(500, function(){
next.fadeIn(500);
current = next;
});
}
setInterval(fade,2000);
在“FadeIn”中,“f”应该很小
您的代码:
setTimeout(function(){
next.FadeIn(500);
},1000);
实际代码:
setTimeout(function(){
next.fadeIn(500);
},1000);
在“FadeIn”中,“f”应该是小的
您的代码:
setTimeout(function(){
next.FadeIn(500);
},1000);
实际代码:
setTimeout(function(){
next.fadeIn(500);
},1000);
尝试设置间隔
var i = 0;
setInterval(function() {
$(".twitterinner").fadeOut("fast");
$(".twitterinner").eq(i).fadeIn("slow");
i++;
if(i == $(".twitterinner").length){
i = 0;
}
} ,1000);
尝试设置间隔
var i = 0;
setInterval(function() {
$(".twitterinner").fadeOut("fast");
$(".twitterinner").eq(i).fadeIn("slow");
i++;
if(i == $(".twitterinner").length){
i = 0;
}
} ,1000);
您可以使用setInterval,但如果您更喜欢使用setTimeout来控制它,最好是在同一时间内只设置一个超时,并使用回调链接调用 诸如此类:
函数淡入淡出(){
if(当前.next('div.twitterinner')。长度>0){
next=当前.next('div.twitterinner');
}
否则{
next=outer.find('div.twitterinner:first');
}
电流衰减(500,函数(){
//500毫秒后执行
next.delay(500).fadeIn(500,function(){
//500+500+500=1500毫秒后执行;
当前=下一个;
setTimeout(淡入淡出,500);//在1500+500=2000毫秒后执行。
});
});
}
或者,如果希望有一个更清晰的脚本来执行所有这些,可以为每个步骤定义一个函数(如果动画变得更复杂,这将非常有用):
函数淡入淡出(){
if(当前.next('div.twitterinner')。长度>0){
next=当前.next('div.twitterinner');
}
否则{
next=outer.find('div.twitterinner:first');
}
电流衰减(500,步骤2);
函数step2(){
//500毫秒后执行
next.delay(500).fadeIn(500,步骤3);
}
函数step3(){
//500+500+500=1500毫秒后执行;
当前=下一个;
setTimeout(淡入淡出,500);//在1500+500=2000毫秒后执行。
}
}
您可以使用setInterval,但如果您更喜欢使用setTimeout来控制它,最好是在同一时间内只设置一个超时,并使用回调链接调用
诸如此类:
函数淡入淡出(){
if(当前.next('div.twitterinner')。长度>0){
next=当前.next('div.twitterinner');
}
否则{
next=outer.find('div.twitterinner:first');
}
电流衰减(500,函数(){
//500毫秒后执行
next.delay(500).fadeIn(500,function(){
//500+500+500=1500毫秒后执行;
当前=下一个;
setTimeout(淡入淡出,500);//在1500+500=2000毫秒后执行。
});
});
}
或者,如果希望有一个更清晰的脚本来执行所有这些,可以为每个步骤定义一个函数(如果动画变得更复杂,这将非常有用):
函数淡入淡出(){
if(当前.next('div.twitterinner')。长度>0){
next=当前.next('div.twitterinner');
}
否则{
next=outer.find('div.twitterinner:first');
}
电流衰减(500,步骤2);
函数step2(){
//500毫秒后执行
next.delay(500).fadeIn(500,步骤3);
}
函数step3(){
//500+500+500=1500毫秒后执行;
当前=下一个;
setTimeout(淡入淡出,500);//在1500+500=2000毫秒后执行。
}
}
setTimeout
工作于a-synch-ron-ous-ly。想想看,:)
如果我告诉你fade有一个回调FadeIn!=fadeIn
-我知道,使用fade:)Javascript对我来说仍然是新领域。谢谢大家的大力支持。法登确实是为我做的。我很高兴我看到了很多解决这个问题的替代方法,老实说,我从来没有想过使用setInterval
setTimeout
工作于a-synch-ron-ous-ly。想想看,:)
如果我告诉你fade有一个回调FadeIn!=fadeIn
-我知道,使用fade:)Javascript对我来说仍然是新领域。谢谢大家的大力支持。法登确实是为我做的。我很高兴我看到了很多解决这个问题的替代方法,老实说,我从来没有想过使用setInterval
。setInterval是一个很好的方法(老实说,我从来没有想过。我不得不做一些阅读),但我必须指出,在你的代码中没有提供我想要的淡出和返回之间的超时。它们重叠,但事实并非如此