@metadream/image-comparator
v1.0.5
Published
A lightweight, zero-dependency image comparison slider with zoom and pan support
Maintainers
Readme
Image Comparator
A lightweight, zero-dependency native image comparison slider component.
Most similar components only support sliding crop, but for detailed image comparison (design mockups, photo retouching before/after, medical imaging analysis), zoom and pan are equally essential. No existing component fit the bill, hence this small custom wheel.
Features
- Slide crop — drag the middle handle to compare left and right images
- Scroll zoom — zoom in to inspect every detail
- Drag to pan — freely move the image when zoomed in, with boundary clamping
- Fullscreen maximize — one-click immersive comparison, press
Escapeto exit - Self-contained — CSS is inlined in JS, just include one file
- Native — zero dependencies, uses Pointer Events (mouse + touch)
Demo
https://metadream.github.io/image-comparator
Quick Start
<script src="https://unpkg.com/@metadream/image-comparator"></script>
<div class="image-comparator">
<img class="left-image" src="before.jpg">
<img class="right-image" src="after.png">
</div>
<script>
new ImageComparator('.image-comparator');
</script>The container aspect ratio is determined by the loaded
left-imagenatural dimensions. You can also set a fixedwidth/padding-bottomon.image-comparatorto override.
Options
new ImageComparator('.image-comparator', {
showMaximizeIcon: false,
sliderPosition: 50,
maxScale: 20,
scaleStep: 0.2,
});| Option | Type | Default | Description |
|--------|------|---------|-------------|
| showMaximizeIcon | boolean | false | Show the maximize button in the top-right corner |
| sliderPosition | number | 50 | Initial slider position (percentage, 0–100) |
| maxScale | number | 20 | Maximum zoom level |
| scaleStep | number | 0.2 | Zoom step per scroll event |
Browser Support
All modern browsers (Chrome, Firefox, Safari, Edge). Uses Pointer Events under the hood, works on mobile touch screens.
