UNPKG

react-ivy-pinch-zoom

Version:

React library for images scaling and dragging with touch screen gestures

57 lines (41 loc) 3.78 kB
# Pinch zoom for React <img src="https://badgen.net/bundlephobia/min/react-ivy-pinch-zoom" /> React library for images scaling and dragging with touch screen gestures. Live demo can be found on [home page](http://ivylab.space/pinch-zoom/react). <img src="http://ivylab.space/assets/img/basic-usage.gif" /> ## Installation Install the npm package. npm i react-ivy-pinch-zoom ## Usage ```tsx import React, { Component } from 'react' import { PinchZoom } from 'react-ivy-pinch-zoom' import 'react-ivy-pinch-zoom/dist/pinch-zoom.css' class Example extends Component { render() { return <PinchZoom imgPath="path_to_image" /> } } ``` ## Properties | name | type | default | description | |------------------|-----------------|---------|---------------------------------------------| | transitionDuration | number | 200 | Defines the speed of the animation of positioning and transforming.| | limitZoom | number, "original image size" | "original image size" | Limit the maximum available scale. By default, the maximum scale is calculated based on the original image size. | | minScale | number | 0 | Limit the minimum acceptable scale. With a value of 1, it is recommended to use this parameter with `limitPan` | | autoZoomOut | boolean | false | Automatic restoration of the original size of an image after its zooming in by two fingers.| | doubleTap | boolean | true | Zooming in and zooming out of an image, depending on its current condition, with double tap.| | disabled | boolean | false | Disable zoom. | | disablePan | boolean | false | Turn off panning with one finger. | | overflow | "hidden", "visible" | "hidden" | `hidden` - the overflow is clipped, and the rest of the content will be invisible. `visible` - the overflow is not clipped. The content renders outside the element's box. | | disableZoomControl | "disable", "never", "auto" | "auto" | Disable zoom controls. `auto` - Disable zoom controls on touch screen devices. `never` - show zoom controls on all devices. `disable` - disable zoom controls on all devices. | | zoomControlScale | number | 1 | Zoom factor when using zoom controls. | | backgroundColor | string | "rgba(0,0,0,0.85)" | The background color of the container. | | limitPan | boolean | false | Stop panning when the edge of the image reaches the edge of the screen. | | listeners | "auto", "mouse and touch" | "mouse and touch" | By default, subscriptions are made for mouse and touch screen events. The value `auto` means that the subscription will be only for touch events or only for mouse events, depending on the type of screen. | | wheel | boolean | true | Scale with the mouse wheel. | | wheelZoomFactor | number | 0.2 | Zoom factor when zoomed in with the mouse wheel. | | autoHeight | boolean | false | Calculate the height of the container based on the `width` and `height` attributes of the image. By default, the width of the container is 100%, and the height is determined after the image information is loaded - this may cause a delay in determining the height of the container. If you want the container to initially have dimensions corresponding to the dimensions of the image, then specify the attributes `width` and `height` for the `<img>` tag. When setting the property value to `true`, a subscription to the window resize listener will be created. | | draggableImage | boolean | true | Sets the attribute `draggable` to the `<img>` tag. | ## License Apache License 2.0 © [drozhzhin-n-e](https://github.com/drozhzhin-n-e)