跳到主要内容
Example+

状态导航

ui

src

TSX
// npm install motion
"use client";

import { useState } from "react";
import { motion } from "motion/react";

const tabs = ["Motion", "GSAP", "CSS"];

export default function Page() {
    const [active, setActive] = useState(0);
    return (
        <div className="flex min-h-screen items-center justify-center">
            <div className="flex bg-black p-1">
                {tabs.map((t, i) => (
                    <button
                        key={t}
                        onClick={() => setActive(i)}
                        className="relative px-4 py-2 text-sm text-white"
                    >
                        {active === i && (
                            <motion.span
                                layoutId="tab-bg"
                                className="absolute inset-0 bg-blue-500"
                                transition={{ type: "spring", stiffness: 500, damping: 35 }}
                            />
                        )}
                        <span className="relative">{t}</span>
                    </button>
                ))}
            </div>
        </div>
    );
}