UNPKG

509 BJavaScriptView Raw
1import { bound } from './bound';
2export function rubberband(distance, dimension, constant) {
3 return distance * dimension * constant / (dimension + constant * distance);
4}
5export function rubberbandIfOutOfBounds(position, min, max, dimension, constant = 0.15) {
6 if (constant === 0) return bound(position, min, max);
7 if (position < min) return -rubberband(min - position, dimension, constant) + min;
8 if (position > max) return +rubberband(position - max, dimension, constant) + max;
9 return position;
10}
\No newline at end of file