Comment basculer entre deux tableaux
Je suis en train de créer un vélo animation de glissement pour ensemble d'éléments, j'ai deux tableaux:
var elms = [elm1, elm2, elm3];
var props = [{x,y,width,height,z-index,opacite,....}, {....}, {....}];
sur l'initialisation, elms
se positionnera dans le même ordre que props
: « ->
ne fait pas partie de la syntaxe, il est juste de rendre les choses plus faciles à expliquer et cela signifie« faire quelque chose avec »
elms[0] -> props[0];
emls[1] -> props[1];
elms[2] -> props[2];
mais je veux le cycle comme eux:
elms[0] -> props[2]
elms[1] -> props[0]
elms[2] -> props[1]
puis:
elms[0] -> props[1]
elms[1] -> props[2]
elms[2] -> props[0]
et ainsi de suite ...
j'ai essayé ceci:
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);
maintenant le code ci-dessus fonctionne bien, mais je suis sûr que cela a été fait beaucoup fois avant et je me demande si quelqu'un sait s'il existe une meilleure façon moins compliquée de faire cela qui permet de faire une boucle en avant et en arrière?
il ne fonctionne pas backwords http://jsfiddle.net/arcm111/Q8dBb/1/ – razzak
a été en mesure de résoudre ce problème souhaite les accessoires [(i-shift + len)% len], merci – razzak
en fait vous exécuterez dans les problèmes avec cela (ei: si le décalage se termine plus négatif). De plus, la nouvelle solution que j'ai ajoutée sera plus flexible ... vérifiez-le. – smerny