Chuyển tới nội dung chính

ImageViewer

ImageViewer component: Component giúp tạo một gallery để xem hình ảnh với kích thước của màn hình, người dùng có thể tương tác thu phóng, chuyển hình,...

Properties

Swiper

NameTypeDefaultDescription
imagesArray<ImageType>Mảng các hình cần xem
activeIndexnumber0Hình sẽ được hiển thị khi mở ImageViewer
visiblebooleanfalseMở/Tắt ImageViewer
maskStyleCSSPropertiesThêm inline style, tuỳ chỉnh style cho lớp overlay
maskClassNamestringThêm class cho element overlay
onClosefunctionCallback function khi đóng ImageViewer

ImageType

NameTypeDefaultDescription
srcstringImage source
altstringVăn bản thay thế (alt text) cho hình ảnh

Example

import React, { useState } from "react";
import { Page, ImageViewer, Box, Text } from "zmp-ui";

const images = [
{
src: "https://stc-zmp.zadn.vn/zmp-zaui/images/e2e10aa1a6087a5623192.jpg",
alt: "img 1",
key: "1"
},
{
src: "https://stc-zmp.zadn.vn/zmp-zaui/images/fee40cbea0177c4925061.jpg",
alt: "img 2",
key: "2"
},
{
src: "https://stc-zmp.zadn.vn/zmp-zaui/images/82ca759bd932056c5c233.jpg",
alt: "img 3",
key: "3"
},
{
src: "https://stc-zmp.zadn.vn/zmp-zaui/images/77f5b8cd1464c83a91754.jpg",
alt: "img 4",
key: "4"
}
];

export default function HomePage() {
const [visible, setVisible] = useState(false);
const [activeIndex, setActiveIndex] = useState(0);
return (

<Text.Title size='small'>ImageViewer</Text.Title>
<Box mt={6}>
<Box>
<Text.Title size='small'>Usage</Text.Title>
</Box>
<Box mt={2}>
<Text size='xSmall' className='input-desc'>
Khi cần xem và tương tác với hình ảnh trên kích thước lớn hơn
</Text>
</Box>
<Box mt={6}>
<Text.Title size='small'>Example</Text.Title>
</Box>
<Box mt={2}>
<Box flex flexDirection='row' flexWrap='nowrap'>
{images.map((img, index) => (
<Box
mr={1}
key={img.key}
style={{
width: "68px",
height: "69px",
borderRadius: "8px",
overflow: "hidden"
}}
>
<img
style={{ width: "100%", height: "100%", objectFit: "cover" }}
role='presentation'
onClick={() => {
setActiveIndex(index);
setVisible(true);
}}
src={img.src}
alt={img.alt}
/>
</Box>
))}
</Box>
<ImageViewer
onClose={() => setVisible(false)}
activeIndex={activeIndex}
images={images}
visible={visible}
/>
</Box>
</Box>

);
}