papercats/client-modes/rolling.js
StevenJoeZhang b535f5c354 Format code
2019-01-16 11:07:52 +08:00

23 lines
451 B
JavaScript

function Rolling(value, frames) {
var lag = 0;
if (!frames) frames = 24;
this.value = value;
Object.defineProperty(this, "lag", {
get: function() {
return lag;
},
enumerable: true
});
this.update = function() {
var delta = this.value - lag;
var dir = Math.sign(delta);
var speed = Math.abs(delta) / frames;
var mag = Math.min(Math.abs(speed), Math.abs(delta));
lag += mag * dir;
return lag;
}
}
module.exports = Rolling;