@secretwpn/react-image-zoom v0.4.9
@secretwpn/react-image-zoom
This is a fork of react-responsive-pinch-zoom-pan by Brad Stiff with slightly changed feature set and converted to TypeScript
It provides a React component rendering an img element with zoom and pan capability using CSS transforms.
Install
npm
npm install @secretwpn/react-image-zoom --save
yarn
yarn add @secretwpn/react-image-zoom
Local
git clone https://github.com/secretwpn/react-responsive-pinch-zoom-pan.gitcd react-responsive-pinch-zoom-pannpm installnpm start- Browse to http://localhost:3001
Usage
import React from 'react'
import { PinchZoomPanImage } from '@secretwpn/react-image-zoom'
const App = () => {
return (
<div style={{ width: '500px', height: '500px' }}>
<PinchZoomPanImage
src="http://picsum.photos/750/750"
/>
</div>
)
}API
| Prop | Type | Default | Description |
|---|---|---|---|
| initialScale | number or auto | auto | The initial scale of the image. When auto, the image will be proportionally 'autofit' to the container. |
| minScale | number | auto | The minimum scale to which the image can be zoomed out. When auto, the minimum scale is the 'autofit' scale. |
| maxScale | number | 1 | The maximum scale to which the image can be zoomed in. |
| zoomRevision | number | undefined | Zoom level will be reset when this prop is changed |
| position | center or topLeft | topLeft | Position of the image relative to the container. Applies when the scaled image is smaller than the container. |
| doubleTapBehavior | reset or zoom | reset | Whether to zoom in or reset to initial scale on double-click / double-tap. |
| imageStyle | CSSProperties | {} | Style to apply to the image, e.g. { opacity: 0.5 } |
| containerStyle | CSSProperties | {} | Style to apply to the image container div, e.g. { width: '100% } |
| animate | boolean | false | Whether to enable subtle animation |
| alt | string | undefined | Same as alt in regular <img /> tag |
| src | string | undefined | Same as src in regular <img /> tag |
| onTransformed | ({top, left, scale}, imageElement) => void | undefined | Called after applying image transformation |
| onImageDimensionsChanged | ({width, height}) => void | undefined | Called when image dimensions are changed |
| onDoubleClick | () => void | undefined | Called on double click |
| onImageLoaded | () => void | undefined | Called when image is loaded |
Development
You're welcome to contribute to react-responsive-pinch-zoom-pan.
To set up the project:
- Fork and clone the repository
npm installnpm start
The example page will be available on http://localhost:3001 in watch mode, meaning you don't have to refresh the page to see your changes.
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago