//这个函数时焦点轮播图动画的一部分,改变动画列表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(); //调用函数
}
添加回答
举报
0/150
提交
取消