我试图创建一个循环滑动动画组元素之间的循环,我有两个数组:
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);
现在上面的代码工作正常,但我相信这已经做了很多次之前,我想知道有没有人知道是否有一个更好的更简单的方法来做到这一点,允许循环前进和后退?
它不起作用backwords http://jsfiddle.net/arcm111/Q8dBb/1/ – razzak 2013-05-04 18:14:26
能够解决它希望道具[(i-shift + len)%len],谢谢 – razzak 2013-05-04 18:26:33
实际上你会运行成为问题(ei:如果转移结束进一步消极)。此外,我添加的新解决方案将更加灵活...检查出来。 – smerny 2013-05-04 19:28:05