@likg/magnifier
Version:
67 lines (51 loc) • 1.8 kB
Markdown
```shell
$ npm install @likg/magnifier
$ yarn add @likg/magnifier
$ pnpm add @likg/magnifier
```
```tsx
import Magnifier from '@likg/magnifier';
const magnifier = new Magnifier(options);
// -- 挂载放大镜
magnifier.mount();
// -- 卸载放大镜
magnifier.destory();
```
> 提示:实际使用中,您只需要 挂载 和 卸载 两个API方法即可。
```ts
interface MagnifierOptions {
/** 放大镜初始尺寸,默认值200x200 */
initialSize?: Size;
/** 放大镜最小尺寸,默认值500x500 */
minSize?: Size;
/** 放大镜最大尺寸,默认值100x100 */
maxSize?: Size;
/** 四周触发拖拽缩放的间距,默认值 20 */
resizeSpacing?: number;
/** 缩放比例,默认值 1 */
scaleRatio?: number;
/** 边框颜色,默认值 #7B68EE */
borderColor?: string;
/** 是否允许跨源图像污染画布 */
allowTaint?: boolean;
/** 跨域地址 */
useCORS?: boolean;
proxy?: string;
/** 调试模式 */
debug?: boolean;
/** 异常处理 */
onError?: (error: Error) => void;
}
```
`@likg/magnifier` 主要依赖 [html2canvas](https://html2canvas.hertzen.com/) 实现,当你发现放大镜内容不完整时,可以参考 html2canvas 关于 CSS 样式的兼容。
推荐阅读博文 [基于原生 js + html2canvas 实现网页放大镜](https://juejin.cn/spost/7313242064196141065) 了解该库的封装思路。
由于 html2canvas<sup>1.4.1</sup> 不兼容 oklch 模式,而 Tailwind CSS<sup>4.0+</sup> 中的调色板从 rgb 变成了 oklch,导致在使用 html2canvas 时控制台抛出如下错误:
```
Error: Attempting to parse an unsupported color function "oklch"
```
因此,采用 [html2canvas-pro](https://www.npmjs.com/package/html2canvas-pro) 替代 html2canvas。