@lagrange/animator
Version:
This library helps making parallax animations on scroll. It is built with performance in mind, as it doesn't need to relayout or paint to operate.
22 lines (18 loc) • 608 B
JavaScript
import { ELEM_TOP, ELEM_CENTER, ELEM_BOTTOM } from '../Constants';
import { screen } from '../utils/screen';
/**
* @param {AnimatorRect} rect
* @param {string} when
*/
export default function parseWhen(rect, when) {
const parts = when.split('_');
if (parts.length !== 2) throw new Error('Missing parameters in animation "when" (expects: ELEM_* | SCREEN_*)');
let obj;
switch (parts[0]) {
default:
case ELEM_TOP: obj = rect.top; break;
case ELEM_CENTER: obj = rect.top + (rect.height / 2); break;
case ELEM_BOTTOM: obj = rect.top + rect.height; break;
}
return obj - screen[parts[1]];
}