Как исправить анимацию rotate3D?

Всем привет! Делаю анимацию rotate3D, но картинки ведут себя странно. Должны они поворачиваться в сторону курсора при наведении на них, примерно так как здесь: https://codepen.io/Bilgili/pen/EbZepr

Но где-то у меня проблемы с рассчетом координат, поэтому крутятся они не так, как нужно: вроде они и двигаются, но все по-разному.

Буду благодарна за помощь, заранее спасибо.

Вот ссылка на код: https://codesandbox.io/s/brave-khorana-ntpki?file=/src/Components/ServiceItem.js

import React, { useEffect, useState } from "react";

export default function ServiceItem({ src, title, alt }) {
  const [offsetX, setOffsetX] = useState(0);
  const [offsetY, setOffsetY] = useState(0);
  //const [friction] = useState(1 / 25);
  const friction = 1 / 25;
  const [offsetClass, setOffsetClass] = useState({});

// ошибка точно на следующих нескольких строках

  const handleMouseMove = (e) => {
    let followX = window.innerWidth / 2 - e.clientX;
    let followY = window.innerHeight / 2 - e.clientY;

    let x = 0,
      y = 0;
    x += (-followX - x) * friction;
    y += (followY - y) * friction;

    setOffsetX(x);
    setOffsetY(y);
  };

  useEffect(() => {
    const offset = {
      transform: `rotate3d(${offsetX}, ${offsetY}, 0, ${
        Math.max(offsetX, offsetY) * 3.14
      }deg)`
    };

    setOffsetClass(offset);
  }, [offsetX, offsetY]);

  return (
    <div className="services_item">
      <div
        className="services_pic"
        onMouseMove={handleMouseMove}
        onMouseLeave={() => setOffsetClass({})}
      >
        <img
          className="services_image"
          src={src}
          alt={alt}
          style={offsetClass}
        />
      </div>
      <div className="services_title">{title}</div>
    </div>
  );
}

Ответы (0 шт):