// src/components/CarouselDemo.tsx import * as React from "react"; import Autoplay from "embla-carousel-autoplay";//实现轮播图的自动播放功能 import { Card, CardContent } from "@/ui/card"; import { Carousel,//主体 CarouselContent,//内容容器 CarouselItem,//单个轮播项 CarouselNext, CarouselPrevious, type CarouselApi, } from "@/ui/carousel"; export function CarouselDemo() { const [api, setApi] = React.useState(); const [current, setCurrent] = React.useState(0); const [count, setCount] = React.useState(0); const totalSlides = 6; React.useEffect(() => { if (!api) return; setCount(api.scrollSnapList().length); setCurrent(api.selectedScrollSnap());//获取当前选中的轮播项的索引 api.on("select", () => { setCurrent(api.selectedScrollSnap()); }); }, [api]);//当api改变时,执行此函数 水平居中 循环 自动播放 回传状态 return (
{Array.from({ length: totalSlides }).map((_, index) => (
))}
{/* 分页指示器 - 右下角 */}
{Array.from({ length: count }).map((_, index) => (
); }