首页 > 文章列表 > 如何在 React 中使用动画灵活地动态插入元素?

如何在 React 中使用动画灵活地动态插入元素?

343 2025-02-21

如何在 React 中使用动画灵活地动态插入元素?

react 中过渡动画实现

在 react 应用中,当元素被插入页面时,可以使用过渡动画来营造流畅的视觉效果。对于动态插入元素,可以通过使用 javascript 动效库实现。

使用 framer motion

对于复杂的动画需求,推荐使用 framer motion 库。它提供了直观且强大的 api,可以轻松定义和控制过渡。其使用示例如下:

import { motion } from "framer-motion";

const Button = () => {
  const handleClick = async () => {
    // 通过 axios 获取数据
    const data = await axios.get("/my-api");

    // 创建一个 motion.div,提供要插入的元素
    const div = (
      <motion.div
        initial={{ opacity: 0, scale: 0.5 }} // 初始化状态
        animate={{ opacity: 1, scale: 1 }} // 动画状态
      >
        {/* 这里插入从 API 获取的数据 */}
        {data.map((item) => (
          <p key={item.id}>{item.name}</p>
        ))}
      </motion.div>
    );

    // 将 div 插入页面
    document.body.appendChild(div);
  };

  return <button onClick={handleClick}>获取数据</button>;
};

在上述代码中:

  • initial 属性指定元素的初始状态(透明且缩小)。
  • animate 属性定义动画的目标状态(完全不透明且正常大小)。
  • document.body.appendchild(div) 将 div 动态插入页面。
来源:1729643728