New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

react-zoom-map

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-zoom-map

An interactive map component with zoom, pan and pinch capabilities based on react-zoom-pan-pinch

latest
Source
npmnpm
Version
1.0.0
Version published
Weekly downloads
0
-100%
Maintainers
1
Weekly downloads
 
Created
Source

React Zoom Map

npm version license

基于react-zoom-pan-pinch的交互式地图组件,提供了图片缩放、平移和捏合功能的React组件。适用于需要在网页中展示可交互地图、图片或任何需要缩放平移功能的场景。

功能特点

  • 支持图片的缩放、平移和捏合操作
  • 自动适应视口大小,根据屏幕尺寸调整图片缩放比例
  • 响应式设计,自动处理窗口大小变化
  • 支持最小/最大缩放限制
  • 提供填充模式切换(宽度填充或高度填充)
  • 支持自定义背景图片
  • 支持在地图上添加自定义内容

安装

npm install react-zoom-map
# 或
yarn add react-zoom-map

使用方法

基本用法

import React from 'react';
import { ZoomPanPinch } from 'react-zoom-map';

function App() {
  return (
    <div style={{ width: '100vw', height: '100vh' }}>
      <ZoomPanPinch backgroundPic="/path/to/your/background/image.jpg">
        {/* 在这里添加您想要在地图上显示的内容 */}
        <div style={{ position: 'absolute', top: '50%', left: '50%', transform: 'translate(-50%, -50%)' }}>
          自定义内容
        </div>
      </ZoomPanPinch>
    </div>
  );
}

export default App;

高级用法

import React from 'react';
import { ZoomPanPinch, useControls, getMinScale } from 'react-zoom-map';

function App() {
  // 获取控制器
  const { zoomIn, zoomOut, resetTransform } = useControls();
  
  // 计算最小缩放比例
  const minScale = getMinScale(1920, 1080);
  
  return (
    <div>
      {/* 控制按钮 */}
      <div className="controls">
        <button onClick={() => zoomIn()}>放大</button>
        <button onClick={() => zoomOut()}>缩小</button>
        <button onClick={() => resetTransform()}>重置</button>
      </div>
      
      {/* 地图组件 */}
      <ZoomPanPinch 
        backgroundPic="/path/to/your/background/image.jpg"
        wrapperStyle={{ border: '1px solid #ccc' }}
        transformWrapper={{
          initialScale: minScale,
          minScale: minScale,
          maxScale: 5,
          limitToBounds: false,
          // 更多配置选项...
        }}
      >
        {/* 自定义内容 */}
      </ZoomPanPinch>
    </div>
  );
}

export default App;

API参考

ZoomPanPinch 组件

属性类型必填默认值描述
backgroundPicstring-背景图片的URL
childrenReactNode-要在地图上显示的自定义内容
wrapperStyleReact.CSSProperties-应用于包装器的自定义样式
transformWrapperobject-传递给TransformWrapper组件的配置选项

导出的工具函数

getMinScale(imgWidth = 1920, imgHeight = 1080)

计算图片在视口中适应所需的最小缩放比例。

参数类型必填默认值描述
imgWidthnumber1920图片原始宽度
imgHeightnumber1080图片原始高度

返回值: number - 最小缩放比例

useControls()

从react-zoom-pan-pinch导出的hook,用于获取控制缩放和平移的函数。

返回值: 包含以下方法的对象:

KeepScale

从react-zoom-pan-pinch导出的组件,用于保持子元素的缩放比例。

浏览器兼容性

支持所有现代浏览器和IE11+。

依赖

  • React 16.8.0+
  • react-zoom-pan-pinch
  • ahooks

贡献指南

欢迎对本项目进行贡献!请查看贡献指南了解详细信息。

许可证

MIT

Keywords

react

FAQs

Package last updated on 21 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts