Swiper
Bắt đầu hỗ trợ ở phiên bản:
- zmp-ui: 1.7.0
Swiper component: Component giúp tạo giao diện slider, thường sử dụng hiển thị một nhóm nội dung dạng slider như banner,...
Properties
Swiper
| Name | Type | Default | Description |
|---|---|---|---|
| afterChange | (currentIndex: number) => void | Callback được sau khi slider đã chuyển đến slide mới. | |
| autoplay | boolean | false | Thiết lập cơ chế tự động chuyển slide. |
| defaultActive | number | Index của slide bắt đầu khi slider được render. | |
| disableSwipe | boolean | false | Tắt cơ chế chuyển slide khi vuốt trên thiết bị di động. |
| dots | boolean | true | Hiển thị các chấm chuyển slide ở phía dưới slider. |
| duration | number | Thời gian tự động chuyển giữa các slide (đơn vị: "ms"). Cần được sử dụng kết hợp với | |
| loop | boolean | false | Thiết lập cơ chế lặp lại các slide. Sau khi chuyển đến slide cuối cùng, slider sẽ quay lại slide đầu tiên. |
| ref | RefObject | Tham chiếu đến instance của Swiper. |
SwiperRefObject
| Name | Type | Default | Description |
|---|---|---|---|
| activeIndex | number | Index của slide hiện tại. | |
| goTo | (slideIndex: number) => void | Chuyển đến một slide cụ thể. | |
| next | () => void | Chuyển đến slide tiếp theo. | |
| prev | () => void | Quay lại slide phía trước. |
Swiper.Slide
| Name | Type | Default | Description |
|---|---|---|---|
| children | React.ReactNode | Nội dung cần được hiển thị trong slide. | |
| className | string | CSS class của slide. | |
| style | CSSProperties | Inline style của slide. |
Example
Swiper Mặc định
import React from "react"; import { Page, Swiper, Box, Text } from "zmp-ui"; export default function HomePage() { return ( <Page className="section-container"> <Text.Title size="small">Swiper</Text.Title> <Box mt={6} flex flexDirection="column" justifyContent="center" alignItems="center" > <Swiper> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/0e05d63a7a93a6cdff826.jpg" alt="slide-1" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/0f7c061caab576eb2fa45.jpg" alt="slide-2" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/321fb45f18f6c4a89de78.jpg" alt="slide-3" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/4f417921d58809d650997.jpg" alt="slide-4" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/677fad2e0187ddd984969.jpg" alt="slide-5" /> </Swiper.Slide> </Swiper> </Box> </Page> ); }
Example
Swiper autoplay
import React from "react"; import { Page, Swiper, Box, Text } from "zmp-ui"; export default function HomePage() { return ( <Page className="section-container"> <Text.Title size="small">Swiper</Text.Title> <Box mt={6} flex flexDirection="column" justifyContent="center" alignItems="center" > <Swiper autoplay duration={2000} loop> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/0e05d63a7a93a6cdff826.jpg" alt="slide-1" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/0f7c061caab576eb2fa45.jpg" alt="slide-2" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/321fb45f18f6c4a89de78.jpg" alt="slide-3" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/4f417921d58809d650997.jpg" alt="slide-4" /> </Swiper.Slide> <Swiper.Slide> <img className="slide-img" src="https://stc-zmp.zadn.vn/zmp-zaui/images/677fad2e0187ddd984969.jpg" alt="slide-5" /> </Swiper.Slide> </Swiper> </Box> </Page> ); }