我試圖創建一個循環滑動動畫組元素之間的循環,我有兩個數組:
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