动画已经拍摄,但是我需要按照以下方式设置这个光环:
1) Visitor arrives - halo is completely off
2)After 1 second the halo flickers quickly (3-4 flickers) then is full bright (no flicker)
3) After 1 second we get flicker again 2-3 flickers then returns to full bright.
4) Halo remains full bright - no cycling to 1
的jQuery
var haloRob = ".halo";
function flash(){
var del = Math.floor((Math.random()*300)+10);
$(haloRob).toggleClass("display-halo").delay(del);
$(haloRob).promise().done(function(){
flash();
});
}
$(haloRob).animate({'marginTop': '27px', opacity: 1}, 1000, flash());
答案 0 :(得分:1)
让闪光灯倒计时,并在完成指定次数的开/关循环后调用回调。
var haloRob = ".halo";
function flash(count, callback) {
if (count > 0) {
var del = Math.floor((Math.random() * 300) + 10);
$(haloRob).toggleClass("display-halo").delay(del);
$(haloRob).promise().done(function () {
flash(count - 1, callback);
});
}
else
{
if (callback) {
callback();
}
}
}
$(haloRob).animate({
'marginTop': '27px',
opacity: 1
}, 1000, function () {
flash(~~((Math.random() * 1 + 3)) * 2, function(){
setTimeout(function(){flash(~~((Math.random() * 1 + 2)) * 2, function(){
alert("done");
});}, 1000);
})
});
*注意:~~
只是将浮点数转换为整数的简单方法。
*注意:随机计数必须加倍,以确保最终状态为" on"
代码可以进一步简化,但应该让你朝着正确的方向前进