Реагирует пружинно — плавный скат с экрана

#javascript #reactjs #react-spring

Вопрос:

У меня есть контейнер Flexbox, состоящий из 6 видимых столбцов карт и 4 переполненных (скрытых) карт. Он заполняет весь монитор.

Используя React Spring, я хотел бы, чтобы он анимировался для перемещения влево и вправо, когда я нажимаю кнопки со стрелками. В любом случае она должна быть бесконечной.

Я написал следующее, что делает то, что я хочу, но это не гладко. Левая сторона дергается и просто исчезает, вместо того чтобы плавно скатываться.

     const [items, setItems] = useState(data);

    const moveFwd = () => {
    const array = [...items];
    const first = array[0];
    array.splice(0, 1);
    array.push(first)
    setItems(array);
}

const moveBck = () => {
    const array = [...items];
    const last = array[array.length - 1];
    array.splice(array.length - 1, 1);
    array.unshift(last)
    setItems(array);
}



const PressItems = ({posts}) => {
    
    
    const transition = useTransition(items, {
        config: config.slow,
        from: { transform: "translate3d(150%, 0,0)", opacity: 1, },
        enter: { transform: "translate3d(0%, 0,0)", opacity: 1 },
        leave: { transform: "translate3d(-150%,0, 0)", opacity: 0, position: "absolute" },
        keys: items.map((item, index) => index),
      });

   return transition((style, item) => {
        return <animated.div style={style}><PressCard data={item} /></animated.div>;
      })

       };
 

Есть идеи, как сделать это более плавным?

Комментарии:

1. Можете ли вы сделать песочницу?