simple-panzoom
v2.0.2
Published
保留 vue3-sketch-ruler 实际用到的功能,移除 SVG、IE 与多指捏合等未用特性,提升性能与体积。
Downloads
225
Readme
simple-panzoom(精简版)
保留 vue3-sketch-ruler 实际用到的功能,移除 SVG、IE 与多指捏合等未用特性,提升性能与体积。
使用方法
安装
npm install simple-panzoomdemo
保留的 API
Panzoom(elem, options)bind/destroyhandleDown/handleMove/handleUppanzoom/zoomIn/zoomOut/zoomToPoint/zoomWithWheelresetsetOptionsgetPan/getScale
保留的选项
noBind,canvas,cursorstartX,startY,startScaledisablePan,disableZoomcontain: 'inside' | 'outside' | 'none'minScale,maxScale,steporigin(支持字符串,如'0 0')touchAction,handleStartEvent,overflow
移除的特性
- SVG 专属实现与 IE 兼容分支
exclude/excludeClassrelative,panOnlyWhenZoomed,disableXAxis/disableYAxis,roundPixels- 多指捏合与 Touch/Mouse 事件回退(统一使用 Pointer 事件)
性能优化
- 维度计算拆分轻量/完整版本并按需调用
- 同一操作链路内复用维度对象,降低
getBoundingClientRect与样式读取次数 - 事件默认仅派发
panzoomchange,减少分发成本
与 vue3-sketch-ruler 的集成要点
- 容器初始化:
Panzoom(elem, { noBind: true, canvas: true, startX, startY, startScale, ... }) - 滚轮缩放:在父容器监听
wheel,在Ctrl/Meta下调用zoomWithWheel(e) - 空格/中键拖动:通过
bind()/destroy()与handleDown(e)控制拖动开启与结束 - 左上角缩放:传入
origin: '0 0'
事件
panzoomchange:detail包含{ x, y, scale, dimsOut }
引用
- 基于 panzoom 实现
许可
MIT
