react-jimage

v1.3.2
an image container for react

React JiMage

Touch enabled, pan and zoom image container for React.

  • Zoom with mouseWheel or pinch
  • Drag with mouse or touch
  • Preloading included

See demo.

Install

yarn add react-jimage

Usage

import Image from 'react-jimage'

<div style={{ width: .., height: .., background: .. }}>
    <Image
        image={'https://image.com/yourimage.jpg'}
        preloader={<i>Loading...</i>}
    />
</div>

The Image component is a div with these styling:

{
  width: '100%',
  height: '100%',
  overflow: 'hidden',
  position: 'relative',
  userSelect: 'none',
}

inside that div, we have a preloader or an img. The preloader is optional, and will be displayed as is. You will be the one controlling the styling for the preloader.

After the image have been loaded, we will have the image displayed inside the container.

Props

Functional

Name Description Optional
image String, image src no
preloader ReactComponent, or String yes

Event

Sometimes you need to know when zoom or drag happens. The Image component also accepts these props:

Name Description
onActionStart Function({ type, touch })
onActionEnd Function({ type, touch })

type: [String] 'drag' || 'zoom'
touch: [Boolean]

Cheers, jujiyangasli

Metadata

  • MIT
  • Whatever
  • juji
  • released 3/4/2020

Downloads

Maintainers