这个javascript例子如何不用函数名回调本身,像使用arguments.callee一样?
//这个函数时焦点轮播图动画的一部分,改变动画列表left值的。我在setTimeout(arguments.callee, interval);这里能用callee属性,可是最后一行的go()如何改?callee是属性,不能写arguments.callee()或return arguments.callee?function animate(offset){ var time = 400; //time:每切一图的时间 var interval = 10; //interval:最小定时间隔 var speed = offset/(time/interval); //speed:每定时周期偏移量 var newLeft = parseInt(picList.style.left) + offset; //移动后应到达的位置 function go(){ animated = true; //动画开始 //判断条件(列表右移且未到达预定位置 || 列表左移且未到达预定位置) if ((speed > 0 && parseInt(picList.style.left) < newLeft) || speed < 0 && parseInt(picList.style.left) > newLeft) { picList.style.left = parseInt(picList.style.left) + speed + "px"; setTimeout(arguments.callee, interval); //递归直到到达预定位置 } else{ //到达预定位置后判断时候需要跳转 picList.style.left = newLeft + "px"; if (newLeft > -800) { picList.style.left = -3200 + "px"; } else if (newLeft < -3200) { picList.style.left = -800 + "px"; } animated = false; //动画结束(不能写在后面那个括号外) } } go(); //调用函数} |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|