0
我有以下的循環,我想優化:如何優化取模功能?
var items = document.querySelectorAll('.mover');
for (var i = 0; i < items.length; i++) {
var phase = Math.sin((document.body.scrollTop/1250) + (i % 5));
items[i].style.left = items[i].basicLeft + 100 * phase + 'px';
}
當我控制檯登錄相輸出。 console.log(phase)
我意識到,我得到了相同的5個號碼。
例如: 比方說items.length = 200
。 這些是階段的結果。
i = 0 phase = 0
i = 1 phase = 0.84147
i = 2 phase = 0.90929
i = 3 phase = 0.14112
i = 4 phase = -0.75680
i = 5 phase = 0
i = 6 phase = 0.84147
i = 7 phase = 0.90929
i = 8 phase = 0.14112
i = 9 phase = -0.75680
i = 10 phase = 0
i = 11 phase = 0.84147
i = 12 phase = 0.90929
i = 13 phase = 0.14112
i = 14 phase = -0.75680
等
我想借此行
var phase = Math.sin(var scrollTop = document.body.scrollTop/1250; + (i % 5));
出來的for循環,但我無法弄清楚如何通過正確的相位數迴圈。
所以我只是想計算我的< 5階段,因爲它之後重複。如何使它相對應,以便當for循環處於i = 25時,循環獲得正確的相位(在這種情況下,它將爲0)。
有[沒什麼優化]在該代碼(https://en.wikipedia.org/wiki/Premature_optimisation)。就這樣離開吧。 – Bergi
a)使用嵌套循環(一個從0到5,一個在增量爲5的元素上)b)使用大小爲5的數組來記憶值 – Bergi