我试图使用来自http://spritely.net/的库制作动画。我通过使用 .onscroll() 触发它 - 但我努力停止滚动事件触发太频繁并且它加快了动画的速度,因为它被 .onscroll() 调用以每秒启动多次
通过根据当前时间设置变量,我第一次滚动时能够停止滚动事件触发太频繁
我无法保持后续滚动事件的延迟,每次滚动后变量的效果越来越差
我怎样才能保持它,以便滚动只触发一次动画开始,每个滚动事件,以便无论我通过启动和停止滚动启动和停止动画多少次,它都保持恒定的速度?这是演示 http://jsfiddle.net/fGmbe/109/
这是代码
var t, l = (new Date()).getTime(), scrolling = false;
$(window).scroll(function(){
var now = (new Date()).getTime();
if(now - l > 800 && !scrolling ){
$('#bird').sprite({fps:6, no_of_frames: 16, rewind: true });
l = now;
}
clearTimeout(t);
t = setTimeout(function(){
if (!scrolling)
$('#bird').spStop()
}, 300);
});
var a, b = (new Date()).getTime(), scrolling = false;
$(window).scroll(function() {
var nw = (new Date()).getTime();
if(nw - b > 800 && !scrolling ){
$('#bird').spStart({fps:8, no_of_frames: 16, rewind: true })
l = nw;
}
});
var c, d = (new Date()).getTime(), scrolling = false;
$(window).scroll(function() {
var nx = (new Date()).getTime();
if(nx - d > 800 && !scrolling ){
$('#bird').spStart({fps:8, no_of_frames: 16, rewind: true })
l = nx;
}
});