کاروسل (Carousel)
یک کامپوننت کاروسل برای نمایش محتوا به صورت اسلایدی
معرفی
کامپوننت Carousel برای نمایش مجموعهای از محتوا به صورت اسلایدی استفاده میشود. این کامپوننت از Embla Carousel استفاده میکند.
استفاده
۱
۲
۳
import {
Carousel,
CarouselContent,
CarouselItem,
CarouselNext,
CarouselPrevious,
} from '@parto/ui';
export default function MyComponent() {
return (
<Carousel>
<CarouselContent>
<CarouselItem>اسلاید 1</CarouselItem>
<CarouselItem>اسلاید 2</CarouselItem>
<CarouselItem>اسلاید 3</CarouselItem>
</CarouselContent>
<CarouselPrevious />
<CarouselNext />
</Carousel>
);
}اندازهبندی
نمایش چند آیتم
<Carousel
opts={{
align: "start",
}}
className="w-full max-w-sm"
>
<CarouselContent>
{Array.from({ length: 5 }).map((_, index) => (
<CarouselItem key={index} className="md:basis-1/2 lg:basis-1/3">
<div className="p-1">
کارت {index + 1}
</div>
</CarouselItem>
))}
</CarouselContent>
<CarouselPrevious />
<CarouselNext />
</Carousel>جهت عمودی
<Carousel orientation="vertical" className="w-full max-w-xs">
<CarouselContent className="-mt-1 h-[200px]">
{Array.from({ length: 5 }).map((_, index) => (
<CarouselItem key={index} className="pt-1 md:basis-1/2">
<div className="p-1">
کارت {index + 1}
</div>
</CarouselItem>
))}
</CarouselContent>
<CarouselPrevious />
<CarouselNext />
</Carousel>API دسترسی
import { useCarousel } from '@parto/ui';
const { api } = useCarousel();
// دسترسی به متدهای کاروسل
api?.scrollNext();
api?.scrollPrev();
api?.scrollTo(index);Props
Carousel
| Prop | Type | Default | توضیحات |
|---|---|---|---|
orientation | 'horizontal' | 'vertical' | 'horizontal' | جهت کاروسل |
opts | CarouselOptions | - | تنظیمات Embla |
plugins | CarouselPlugin[] | - | افزونههای Embla |
ویژگیها
- اسلایدشو خودکار
- حلقه بینهایت
- لمس و کشیدن (Drag)
- پشتیبانی از کیبورد
- سازگار با RTL