Jquery 节点反向计数(递增/递减)

Jquery 节点反向计数(递增/递减),jquery,node.js,animation,easing,fading,Jquery,Node.js,Animation,Easing,Fading,我用jquery函数编写了一个小动画库。 现在我有一个问题,当我的起始值大于或等于结束值时,我的函数不起作用 var easing=require(“../easing.js”).ease; 功能衰减(开始值、结束值、持续时间){ var区间=46; var时间=0; setInterval(函数(){ //计算当前时间 时间=时间+间隔; //称之为放松自由 值=缓和[“线性”](时间、开始值、结束值、持续时间); 值=数学四舍五入(值); 如果(值>=结束值){ clearInterval

我用jquery函数编写了一个小动画库。 现在我有一个问题,当我的起始值大于或等于结束值时,我的函数不起作用

var easing=require(“../easing.js”).ease;
功能衰减(开始值、结束值、持续时间){
var区间=46;
var时间=0;
setInterval(函数(){
//计算当前时间
时间=时间+间隔;
//称之为放松自由
值=缓和[“线性”](时间、开始值、结束值、持续时间);
值=数学四舍五入(值);
如果(值>=结束值){
clearInterval(本);
控制台日志(“完成”);
}
console.log(值);
},间隔);
}
衰减(255,0,1000);//马上

淡入度(0,255,1000);//0到255秒
您的问题是这一行

  if(value >= end_value){
在这里,您在编写它时假设您正在朝着
end\u值
上升。相反,该行应该不知道
start\u值
是否大于或小于
end\u值
。您的函数应该如下所示:

function fade(start_value, end_value, duration) {

  ...

  var min_value = Math.min(start_value, end_value);
  var max_value = Math.max(start_value, end_value);

  ...

  // Stop the animation when out of range
  if (value <= min_value || value >= max_value) {
    clearInterval(this);
    console.log("Done");
  }

  ...

}
功能衰减(开始值、结束值、持续时间){
...
var min\u value=Math.min(开始值、结束值);
var max\u value=Math.max(开始值、结束值);
...
//超出范围时停止动画
如果(值=最大值){
clearInterval(本);
控制台日志(“完成”);
}
...
}

您能提供一个有效的代码片段吗?我收到一条错误消息。对不起,这不起作用。这里是“放松”方法“线性”的来源:
函数线性(t,b,c,d){返回c*t/d+b;}
,我认为问题在于这个函数,如果你像“线性(0,255,0,1000)”那样调用这个函数,它会立即返回“255”