为了账号安全,请及时绑定邮箱和手机立即绑定

这个javascript例子如何不用函数名回调本身,像使用arguments.callee一样?

这个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();  //调用函数 }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1364 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信