我有一个动画,根据页面上的滚动位置显示 8 个可能的帧之一。每次滚动 20 像素时,都会显示下一帧,直到到达第 8 帧,然后在 160 像素后返回到第一帧。目前,如果页面长 2000 像素,我需要 100 个 if 语句,这看起来很荒谬。必须有一种方法可以使用使用循环的漂亮函数将其变为几行。一位朋友说这将是“mod”的工作,但显然 javascript 不能做 mod 或剩余部分。
我已经摘录了下面的脚本,但你可以在这里看到整个想法
http://jsfiddle.net/jimmytheman/NnFmn/2/
function scroll() {
if (window.pageYOffset < 20){
setTimeout("document.images['ball'].src=imageArray[0].src",0);
}
else if (window.pageYOffset < 40){
setTimeout("document.images['ball'].src=imageArray[1].src",0);
}
else if (window.pageYOffset < 60){
setTimeout("document.images['ball'].src=imageArray[2].src",0);
}
else if (window.pageYOffset < 80){
setTimeout("document.images['ball'].src=imageArray[3].src",0);
}