motion-v
Version:
<p align="center"> <img width="100" height="100" alt="Motion logo" src="https://user-images.githubusercontent.com/7850794/164965523-3eced4c4-6020-467e-acde-f11b7900ad62.png" /> </p> <h1 align="center">Motion for Vue</h1>
21 lines (20 loc) • 696 B
JavaScript
import { convertBoundingBoxToBox, transformBoxPoints } from "../conversion.mjs";
import { translateAxis } from "../geometry/delta-apply.mjs";
function measureViewportBox(instance, transformPoint) {
return convertBoundingBoxToBox(
transformBoxPoints(instance.getBoundingClientRect(), transformPoint)
);
}
function measurePageBox(element, rootProjectionNode, transformPagePoint) {
const viewportBox = measureViewportBox(element, transformPagePoint);
const { scroll } = rootProjectionNode;
if (scroll) {
translateAxis(viewportBox.x, scroll.offset.x);
translateAxis(viewportBox.y, scroll.offset.y);
}
return viewportBox;
}
export {
measurePageBox,
measureViewportBox
};