Javascript jQuery等待到第一个间隔
我有一个小小的jquery代码,我希望数组的内容能够以一定的延迟平滑地淡出,并在最后重新启动第一个数组项 它工作正常,但不幸的是,在开始时,函数等待5000ms的间隔,然后才开始显示第一个条目。我想马上开始。有人知道我能做到吗 这是我的密码:Javascript jQuery等待到第一个间隔,javascript,jquery,setinterval,Javascript,Jquery,Setinterval,我有一个小小的jquery代码,我希望数组的内容能够以一定的延迟平滑地淡出,并在最后重新启动第一个数组项 它工作正常,但不幸的是,在开始时,函数等待5000ms的间隔,然后才开始显示第一个条目。我想马上开始。有人知道我能做到吗 这是我的密码: $('.wissenswertes').append('<div class="content"></div>'); var wissenArray = [0, 1, 2, 3]; itemNr = wissenArray.leng
$('.wissenswertes').append('<div class="content"></div>');
var wissenArray = [0, 1, 2, 3];
itemNr = wissenArray.length;
function loopWissen() {
var i = 0;
setInterval(function () {
$('.wissenswertes .content').text(wissenArray[i]).fadeIn(1000).delay(3000).fadeOut(1000);
i++;
if (i == itemNr) {
i = 0;
}
}, 5000);
}
$(loopWissen);
$('.wissenswertes')。附加('');
var wissenArray=[0,1,2,3];
itemNr=wissenArray.length;
函数loopWissen(){
var i=0;
setInterval(函数(){
$('.wissenswertes.content').text(wissenArray[i]).fadeIn(1000)、delay(3000)、fadeOut(1000);
i++;
如果(i==itemNr){
i=0;
}
}, 5000);
}
美元(卢普维森);
还有一个
顺便说一句:如果你对一般代码改进有任何建议,欢迎你告诉我!谢谢。您可以先定义函数,而不是使用匿名函数,然后立即调用它:
function loopWissen() {
var i = 0;
var fn = function() {
$('.wissenswertes .content').text(wissenArray[i]).fadeIn(1000).delay(3000).fadeOut(1000);
i++;
if(i == itemNr) {
i = 0;
}
};
fn(); // calls it immediately
setInterval(fn, 5000);
}
您可以先定义函数,而不是使用匿名函数,然后立即调用它:
function loopWissen() {
var i = 0;
var fn = function() {
$('.wissenswertes .content').text(wissenArray[i]).fadeIn(1000).delay(3000).fadeOut(1000);
i++;
if(i == itemNr) {
i = 0;
}
};
fn(); // calls it immediately
setInterval(fn, 5000);
}
大概是这样的:
$('.wissenswertes').append('<div class="content"></div>');
var wissenArray = [0,1,2,3];
var itemNr = wissenArray.length;
var i = 0;
function loopWissen() {
$('.wissenswertes .content').text(wissenArray[i]).fadeIn(1000).delay(3000).fadeOut(1000);
i++;
if(i == itemNr) {
i = 0;
}
}
setInterval(loopWissen, 5000);
loopWissen();
$('.wissenswertes')。附加('');
var wissenArray=[0,1,2,3];
var itemNr=wissenArray.length;
var i=0;
函数loopWissen(){
$('.wissenswertes.content').text(wissenArray[i]).fadeIn(1000)、delay(3000)、fadeOut(1000);
i++;
如果(i==itemNr){
i=0;
}
}
设置间隔(loopWissen,5000);
loopWissen();
类似这样的内容:
$('.wissenswertes').append('<div class="content"></div>');
var wissenArray = [0,1,2,3];
var itemNr = wissenArray.length;
var i = 0;
function loopWissen() {
$('.wissenswertes .content').text(wissenArray[i]).fadeIn(1000).delay(3000).fadeOut(1000);
i++;
if(i == itemNr) {
i = 0;
}
}
setInterval(loopWissen, 5000);
loopWissen();
$('.wissenswertes')。附加('');
var wissenArray=[0,1,2,3];
var itemNr=wissenArray.length;
var i=0;
函数loopWissen(){
$('.wissenswertes.content').text(wissenArray[i]).fadeIn(1000)、delay(3000)、fadeOut(1000);
i++;
如果(i==itemNr){
i=0;
}
}
设置间隔(loopWissen,5000);
loopWissen();
不要为此使用setInterval
。它是脆弱的,因为您依赖于与其他计时代码一致的间隔
我只需要在淡出(1000)之后调用函数
$('.wissenswertes')。附加('');
var wissenArray=[0,1,2,3];
函数loopWissen(){
var i=0;
(函数循环(){
$('.wissenswertes.content').text(wissenArray[i])
法丹先生(1000)
.delay(3000)//v--衰减后的下一个循环
.衰减(1000,环路);
i=+i%wissenArray.length;
}());
}
美元(卢普维森);
我还缩短了您的I
递增代码。你的方式绝对不错,但这只是更简洁一点
还删除了
itemNr
,因为获取.length
非常便宜。不要为此使用setInterval
。它是脆弱的,因为您依赖于与其他计时代码一致的间隔
我只需要在淡出(1000)之后调用函数
$('.wissenswertes')。附加('');
var wissenArray=[0,1,2,3];
函数loopWissen(){
var i=0;
(函数循环(){
$('.wissenswertes.content').text(wissenArray[i])
法丹先生(1000)
.delay(3000)//v--衰减后的下一个循环
.衰减(1000,环路);
i=+i%wissenArray.length;
}());
}
美元(卢普维森);
我还缩短了您的I
递增代码。你的方式绝对不错,但这只是更简洁一点
还删除了
itemNr
,因为获取.length
非常便宜。我个人会清理一下:
function loopWissen() {
var array = [0, 1, 2, 3];
(function next(i, a, l) {
$('.wissenswertes .content')
.text(a[i])
.fadeIn(1000).delay(3000).fadeOut(1000, function () {
next(++i % l, a, l);
});
})(0, array, array.length);
}
就我个人而言,我会稍微清理一下:
function loopWissen() {
var array = [0, 1, 2, 3];
(function next(i, a, l) {
$('.wissenswertes .content')
.text(a[i])
.fadeIn(1000).delay(3000).fadeOut(1000, function () {
next(++i % l, a, l);
});
})(0, array, array.length);
}
将其放入函数中,然后使用上次淡出的回调再次调用该函数。将其放入函数中,然后使用上次淡出的回调再次调用该函数。非常感谢您对代码的改进,它工作起来非常有魅力!在这个计时环境中,我也有点担心setInterval。谢谢!非常感谢您对代码的改进,它工作起来很有魅力!在这个计时环境中,我也有点担心setInterval。谢谢!