The Svelte Image Zoom Plugin is a lightweight and customizable plugin that provides zoom functionality for images in Svelte applications. It allows users to hover over an image and view a zoomed-in version in a separate box, enhancing the user experience and providing a closer look at image details.
The ImageZoom
component accepts the following props:
Prop | Type | Default Value | Description |
---|---|---|---|
imageStyle | Object | {} | Custom CSS styles for the image element. |
containerStyle | Object | {} | Custom CSS styles for the container element. |
url | String | null | The path or URL of the image to be displayed. |
zoomImgUrl | String | null | An alternative image URL to use for zoomed view (optional, if not provided, the url prop is used). |
viewerWidth | Number | 200 | The width of the zoom viewer in pixels. |
viewerHeight | Number | 400 | The height of the zoom viewer in pixels. |
selectorWidth | Number | 30 | The width of the zoom selector box in pixels. |
selectorHeight | Number | 30 | The height of the zoom selector box in pixels. |
The ImageZoom
component can be customized using CSS styles. Here are the CSS classes and their default styles:
.zoom-box
: The container element that wraps the image and the zoom components..zoom-box > img
: The image element..viewer-box
: The zoom viewer box element..viewer-box img
: The zoomed-in image element inside the viewer box..zoom-selector
: The zoom selector box element.<script>
import ImageZoom from "image-zoom-simple";
</script>
<main>
<ImageZoom
imageStyle={{ width: '200px' }}
viewerHeight={250}
url="https://images.unsplash.com/photo-1686077304557-d13e1b91ac06?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2864&q=80"
/>
<ImageZoom
imageStyle={{ width: '200px' }}
viewerHeight={200}
url="https://images.unsplash.com/photo-1674574124349-0928f4b2bce3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1471&q=80"
/>
</main>
You can override these styles in your application's CSS to achieve the desired visual appearance.