nodejs反向计数(递增/递减)

时间:2017-07-16 12:24:08

标签: jquery node.js animation easing fading

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

var easing = require("../easing.js").ease;


function fade(start_value, end_value, duration) {

  var interval = 46;
  var time = 0;


  setInterval(function () {

    // calc current time
    time = time + interval;

    // call easing lib
    value = easing["linear"](time, start_value, end_value, duration);
    value = Math.round(value);
    
    if(value >= end_value){
      clearInterval(this);
      console.log("Done");
    }
    
    console.log(value);

  }, interval);
}


fade(255, 0, 1000); // 255 immediately
fade(0, 255, 1000); // 0 to 255 in 1s

我希望当起始值更大,然后结束值为减量计数。 我怎么能用缓动的lib来做这个?

非常感谢

1 个答案:

答案 0 :(得分:0)

你的问题就在这一行

  if(value >= end_value){

在这里,你写的是假设你向end_value方向前进。相反,该行应该与start_value是大于还是小于end_value的事实无关。您的功能应如下所示:

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");
  }

  ...

}