我有几个循环动画(向上/向下),由以下函数定义。
循环间隔
function Cycler(f) {
if (!(this instanceof Cycler)) {
// Force new
return new Cycler(arguments);
}
// Unbox args
if (f instanceof Function) {
this.fns = Array.prototype.slice.call(arguments);
} else if (f && f.length) {
this.fns = Array.prototype.slice.call(f);
} else {
throw new Error('Invalid arguments supplied to Cycler constructor.');
}
this.pos = 0;
}
Cycler.prototype.start = function (interval) {
var that = this;
interval = interval || 1000;
this.intervalId = setInterval(function () {
that.fns[that.pos++]();
that.pos %= that.fns.length;
}, interval);
}
功能1(向上)
function unpeekTile() {
var peekAnimation = WinJS.UI.Animation.createPeekAnimation([tile1, tile2]);
tile1.style.top = "0px";
tile2.style.top = "0px";
peekAnimation.execute();
}
功能2(向下)
function peekTile() {
var peekAnimation = WinJS.UI.Animation.createPeekAnimation([tile1, tile2]);
tile1.style.top = "-120px";
tile2.style.top = "-120px";
peekAnimation.execute();
}
开始
function c() { Cycler(peekTile, unpeekTile).start(); }
setTimeout(c, 0);
function c2() { Cycler(peekTile2, unpeekTile2).start(); }
setTimeout(c2, 500);
function c3() { Cycler(peekTile3, unpeekTile3).start(); }
setTimeout(c3, 2000);
动画现在从 1000(间隔时间)+ 0/500/2000(setTimeout)开始,但我希望它们以 0、500 和 2000 毫秒开始。有人可以帮忙吗?