すべてのコンポーネント
MotionZoom
画像がその場から全画面へ拡大し、ドラッグして払うと閉じます。
WebReact Nativeオーバーレイ
試してみる
いちばん短い使い方
Photo.jsx<MotionZoom
src={photo.thumb}
zoomSrc={photo.full}
width={240}
height={160}
style={{ objectFit: 'cover', borderRadius: 12 }}
/>;
代わりに処理してくれること
- クリック、Enter、Space で、画像がその場から
margin の内側いっぱいに拡大します。 - 拡大されたコピーは、
object-fit の切り抜きや角の丸みも含め、サムネイルとまったく同じ見た目から始まります。 zoomSrc は読み込みが終わるとフェードインします。- クリック、Escape、またはドラッグで払うと閉じます。すばやく投げても閉じ、短いドラッグならスプリングで戻ります。
こんなときに
- 写真のグリッド。
- 商品ギャラリー。
- ブログ記事の中の画像。
props
| Prop | 型 | デフォルト | 説明 |
|---|
src | string | | その場に表示する画像。 |
|---|
zoomSrc | string | | 読み込みが終わると表示される大きな画像。縦横比は同じにしてください。 |
|---|
margin | number | 24 | 拡大した画像のまわりに残す余白(ピクセル)。 |
|---|
disabled | boolean | false | 拡大を無効にします。 |
|---|
onZoomChange | (zoomed) => void | | 拡大したときに true、閉じたときに false を受け取って実行されます。 |
|---|
backdropStyle | CSSProperties | | 背景のインラインスタイル。 |
|---|
transition | Transition | spring | タイミングカーブ { duration, easing } かスプリング { tempo: 'spring', spring }。スプリングは中断されても勢いを保ちます。 |
|---|
ほかの props は描画される要素に渡るので、className、style、イベントハンドラーはいつもどおり使えます。