function autoScroll() { var elapsed, delta, trgt; if (amplitude) { elapsed = Date.now() - timestamp; delta = -amplitude * Math.exp(-elapsed / timeConstant); // add the edge restrictions to auto scroll instead trgt = (target > max) ? max : (target < min) ? min : target; if (delta > 5 || delta < 5) { scroll(trgt + delta); requestAnimationFrame(autoScroll); } else { scroll(trgt); } } }