Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/junkboy0315/react-compare-image

React component to compare two images with a slider
https://github.com/junkboy0315/react-compare-image

Last synced: 2 months ago
JSON representation

React component to compare two images with a slider

Lists

README

        

# React Compare Image

[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors-)

Buy Me A Coffee

Simple React component to compare two images using slider.

![img](https://user-images.githubusercontent.com/10986861/67158760-0f02a480-f377-11e9-9b83-75bc8005693a.gif)

NOTE: [Vue.js Version](https://github.com/junkboy0315/vue-compare-image) is also available!

## Demo & Sample codes

[Demo & Sample codes](https://react-compare-image.yuuniworks.com/)

## Features

- Simple
- Responsive (always fit to the parent width)
- Horizontal & Vertical comparison

## How to use

```sh
yarn add react-compare-image
// or
npm install --save react-compare-image
```

Note: Version 1 or later works only with React16.8 or later. Use version 0 instead.

```jsx
import ReactCompareImage from 'react-compare-image';

;
```

## Props

| Prop (\* required) | type | default | description |
| ------------------------ | ----------------------- | :---------: | --------------------------------------------------------------------------------------------------------------------- |
| aspectRatio | `'taller'` or `'wider'` | `'taller'` | Which to choose if the aspect ratios of the images are different |
| handle | element | null | Custom handle element. Just pass `` if you want to remove handle. |
| handleSize | number (px) | 40 | diameter of slider handle (by pixel) |
| hover | boolean | false | Whether to slide at hover |
| leftImage \* | string | null | left image's url |
| leftImageAlt | string | `''` | alt props for left image |
| leftImageCss | object | {} | Additional css for left image |
| leftImageLabel | string | null | Label for the image (e.g. `before`) |
| onSliderPositionChange | function | null | Callback function called each time the slider changes. The position (0 to 1) of the slider is passed as arg |
| rightImage \* | string | null | right image's url |
| rightImageAlt | string | `''` | alt props for right image |
| rightImageCss | object | {} | Additional css for right image |
| rightImageLabel | string | null | Label for the image (e.g. `after`) |
| skeleton | element | null | Element displayed while image is loading |
| sliderLineColor | string | `'#ffffff'` | line color of slider |
| sliderLineWidth | number (px) | 2 | line width of slider (by pixel) |
| sliderPositionPercentage | number (float) | 0.5 | Default line position (from 0 to 1) |
| vertical | boolean | false | Compare images vertically instead of horizontally. The left image is on the top and the right image is on the bottom. |

## Supported browzer

Latest modern browsers(Chrome, Safari, Firefox, Edge)