React.js ライブラリ「react-zoom-pan-pinch」を使って画像を拡大・縮小して表示する

React.js ライブラリ「react-zoom-pan-pinch」を使って画像を拡大・縮小して表示する

ライブラリ「react-zoom-pan-pinch」をインストールすると、画像を拡大・縮小して表示することが可能です。ここでは、react.jsでeact-zoom-pan-pinchを利用するための手順と簡単な使い方を記述してます。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • node V12.16.3
  • npm 6.14.7
  • React 16.13.0

react.js環境構築

下記のコマンドで構築してます。ここでは、react-appという名前でプロジェクトを作成してます。

create-react-app react-app

react-zoom-pan-pinchインストール

作成したプロジェクトに移動して、インストールします。

## 作成したプロジェクトに移動
cd react-app
 
## インストール
npm install react-zoom-pan-pinch

react-zoom-pan-pinch使い方

srcディレクトリにsample.jsと名前で下記のコードを記述します。

import React from 'react'
import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch";

const Sample = () => {

  return (    
    <div>
      <TransformWrapper
        defaultScale={1}
        defaultPositionX={200}
        defaultPositionY={100}
      >
        {({ zoomIn, zoomOut, resetTransform, ...rest }) => (
          <React.Fragment>
            <div className="tools">
              <button onClick={zoomIn}>+</button>
              <button onClick={zoomOut}>-</button>
              <button onClick={resetTransform}>x</button>
            </div>
            <TransformComponent>
              <img src="https://cdn.pixabay.com/photo/2020/09/09/13/03/bike-riding-5557589_960_720.png" />              
            </TransformComponent>
          </React.Fragment>
        )}
      </TransformWrapper>
    </div>
  );
}

export default Sample;

次に、srcディレクトリ配下にあるApp.jsを下記のように編集します。

import React from 'react';
import Sample from './sample';
import './App.css';

function App() {
  const style = {
    width: "50%",
    margin: "0 auto",
    marginTop: 150,
  };
  return (
    <div className="App">
      <div style={style}>
        <Sample />
      </div>
    </div>
  );
}

export default App;

実行します。

npm start

ブラウザから http://プライベートIP:3000にアクセスすると、 画像が拡大・縮小して表示されていることが確認できます。