我正在尝试为一组元素创建一个循环滑动动画,我有两个数组:
var elms = [elm1, elm2, elm3];
var props = [{x,y,width,height,z-index,opacite,....}, {....}, {....}];
在初始化时,elms
将按照与以下相同的顺序定位props
:“->
不是语法的一部分,它只是为了让事情更容易解释,它的意思是'做一些事情'”
elms[0] -> props[0];
emls[1] -> props[1];
elms[2] -> props[2];
但后来我想像这样循环它们:
elms[0] -> props[2]
elms[1] -> props[0]
elms[2] -> props[1]
接着:
elms[0] -> props[1]
elms[1] -> props[2]
elms[2] -> props[0]
等等……
我试过这个:
function index(n, array){
var m = n;
if(n > array.length){
m = n - array.lenth;
}else if(n < 0){
m = array.length + n;
}
return m;
}
var active = 0; //the front element
function slide(direction){
for (i=0; i< elms.length; i++)
{
elms[i] -> props[index(i - active, props)]
}
if(direction == 'fw'){
if(active++ => elms.length){
active = 0;
}else{
active++;
}
}else if(direction == 'bw'){
if(active-- < 0){
active += elms.length;
}else{
active--;
}
}
}
setInterval(function(){slide('fw')}, 3000);
现在上面的代码工作正常,但我敢肯定这已经做过很多次了,我想知道有没有人知道是否有更好的更简单的方法来做到这一点,它允许向前和向后循环?