ember-in-viewport
Version:
Detect if an Ember View or Component is in the viewport @ 60FPS
39 lines (30 loc) • 707 B
JavaScript
import { assert } from '@ember/debug';
const { floor } = Math;
export default function checkScrollDirection(
lastPosition = null,
newPosition = {},
sensitivity = 1
) {
if (!lastPosition) {
return 'none';
}
assert('sensitivity cannot be 0', sensitivity);
const { top, left } = newPosition;
const { top: lastTop, left: lastLeft } = lastPosition;
const delta = {
top: floor((top - lastTop) / sensitivity) * sensitivity,
left: floor((left - lastLeft) / sensitivity) * sensitivity,
};
if (delta.top > 0) {
return 'down';
}
if (delta.top < 0) {
return 'up';
}
if (delta.left > 0) {
return 'right';
}
if (delta.left < 0) {
return 'left';
}
}