常用的延时思路:


配合 css
transition:background-color 0.1s
基本就可以实现平滑变化
var functionName=(function(){ //闭包,functionName 写你的函数名
var free=true; //是否空闲
var temp=null; //缓冲数据区
var wait=false; //延时期间是否有调用
function entrance(value) { //入口,value 为你的滚动值
if (free) { //判断是否空闲,如果空闲,如下
doSomething(value); //调用你的实现,传递传入数值
delay(); //设置延时器
} else { //判断是否空闲,如果不空闲,如下
temp=value; //缓冲数据
wait=true; //标记延时期间有调用
}
};
function delay() { //延时器
free=false; //标记为非空闲状态
setTimeout(function(){
if (wait) { //判断延时期间是否有调用,如有,如下
doSomething(temp); //调用你的实现,传递缓冲数值
wait=false; //清除延时期间调用标记
temp=null; //清除缓冲数据区
};
free=true; //标记为空闲状态
},100); //延时长度,自己设置合适的,这里为每秒上限10次
};
function doSomething(value) { //你的实现,函数名可以自己设置,记得把其他地方的也改了
//你的代码,value 为滚动值
};
return entrance; //暴露入口
})();
functionName(value) //调用