{
let el
let mouseX
const baseWidth = 57.6;
const distanceLimit = baseWidth * 6;
const beyondTheDistanceLimit = distanceLimit + 1;
const distanceInput = [
-distanceLimit,
-distanceLimit / 1.25,
-distanceLimit / 2,
0,
distanceLimit / 2,
distanceLimit / 1.25,
distanceLimit,
];
const widthOutput = [
baseWidth,
baseWidth * 1.1,
baseWidth * 1.618,
baseWidth * 2.618,
baseWidth * 1.618,
baseWidth * 1.1,
baseWidth,
];
let distance = beyondTheDistanceLimit;
let $widthPX = baseWidth;
$widthPX = popmotion.interpolate(distanceInput, widthOutput)(distance);
let width
$: width = `${$widthPX / 16}rem`;
let raf
function animate(mouseX) {
if (el && mouseX !== null) {
const rect = el.getBoundingClientRect();
const imgCenterX = rect.left + rect.width / 2;
const distanceDelta = mouseX - imgCenterX;
distance = distanceDelta;
return;
}
distance = beyondTheDistanceLimit;
}
raf = requestAnimationFrame(() => animate(mouseX));
}