Javascript 每个函数检查是否遍历了所有项,然后重新开始
我想添加一个功能,检查我所有的Javascript 每个函数检查是否遍历了所有项,然后重新开始,javascript,jquery,Javascript,Jquery,我想添加一个功能,检查我所有的li.cont是否都被迭代过,如果是,重新开始。与当前的功能不同,当前的功能是最后一个项目淡出,然后区域变为空白。您是否尝试过创建对象的副本并将其添加到辅助数组中,然后再返回?在制作幻灯片时,我会使用angular。我从数组的末尾开始,一直到0 $('li.cont').each(function(i) { $(this).delay((i + 1) * 3000).fadeOut(1500); 或者,您可以使用array.pop()或array.shif
li.cont
是否都被迭代过,如果是,重新开始。与当前的功能不同,当前的功能是最后一个项目淡出,然后区域变为空白。您是否尝试过创建对象的副本并将其添加到辅助数组中,然后再返回?在制作幻灯片时,我会使用angular。我从数组的末尾开始,一直到0
$('li.cont').each(function(i) {
$(this).delay((i + 1) * 3000).fadeOut(1500);
或者,您可以使用array.pop()或array.shift()获取最后一项或第一项的值,并将其从列表中删除。我在本例中展示的代码肯定是实现这一点的最长方法。堆栈上有许多示例可以更有效地执行此操作,具体取决于您希望如何编写代码
这里有一个很好的例子:
我建议使用
fadeOut
的回调参数,当一个动画完成时调用该参数。在那里,你将以循环的方式开始下一步。一旦你再次开始,你只需要恢复情况并显示所有元素
var$items=$('li.cont');
(功能循环(一){
if(!i)$items.show();//从头开始:全部显示
$items.eq(i).fadeToggle(1500,loop.bind(null,(i+1)%$items.length));
})(0);代码>
- A
- B
- C
为什么不在每个循环周围放一个循环呢?现在还有jquery 3.1问题?我想你在寻找无限循环,对吧?如果你再也看不到任何东西,你说的淡出时“重新开始”是什么意思?你到底想实现什么?像无限衰减/衰减效应?如果是这样的话,一个带有步骤的css转换将是一个更好的方法。这与这个问题有什么关系?
var a = [];
var b = [];
function changeIn(){
var l = a.length
if(a.length === 0)
{
angular.copy(b, a);
}
// do stuff here
var x = []
angular.copy(a[l], x);
b.push(x);
if (l > -1) {
array.splice(l, 1);
}
};