signature_pad画线签字位点与实际不符

未修改前效果:手指按压下位置与实际位置偏差很大
在这里插入图片描述

初始化修改为以下代码:

 const _canvas = this.$refs.signatureCanvas;
    const ratio = Math.max(window.devicePixelRatio || 1, 1);
    _canvas.width = _canvas.offsetWidth * ratio;
    _canvas.height = 300 * ratio;
    _canvas.getContext("2d").scale(ratio, ratio);
    this.signaturePad = new SignaturePad(_canvas, {
      // backgroundColor: "rgba(236,151,66,0.09)"
      width: window.innerWidth + ratio,
      minDistance: 2
    });

修改后结果:
在这里插入图片描述

### 关于 `signature_pad` JavaScript 手写签名库 #### 功能概述 `signature_pad` 是一款基于HTML5 Canvas的手写签名插件,能够记录绘制的签名轨迹,并将其转换成JSON格式以便后续再生。该工具非常适合需要收集用户手写签名的应用场景[^1]。 #### 安装配置 为了集成这个组件,在项目的静态资源目录下创建名为`signature_pad`的新文件夹并将官方提供的UMD版本脚本文件放置其中。具体路径结构应类似于: ``` wwwroot/lib/ └── signature_pad/ └── signature_pad.umd.js ``` 此外还需要准备一个自定义的应用逻辑入口文件`app.js`来加载和初始化插件实例[^2]。 #### Vue环境下的应用案例 当涉及到Vue框架时,开发者可以选择直接利用现有的封装好的组件如`vue-signature-pad`来进行开发工作。此类组件通常提供了更便捷的操作接口以及额外特性支持,比如调整笔触宽度、显示已存图片等功能[^4]。 下面是一个简单的例子展示如何在一个Vue单文件组件内引入并使用它: ```html <template> <div v-if="onShiftPersonUrl" class="img"> <!-- 显示之前保存过的签名图像 --> <img class="w-full h-full" :src="onShiftPersonUrl"/> </div> <SignaturePad :sign-visible="signVisible" @signed="handleSignedEvent"/> </template> <script lang="ts" setup> import {ref} from 'vue'; // 导入签名板组件 import SignaturePad from '@/components/Signature.vue'; const onShiftPersonUrl = ref<string | undefined>(); const signVisible = ref<boolean>(true); function handleSignedEvent(imgSrc?: string): void { // 用户完成签名后隐藏签名区域 signVisible.value = false; if (typeof imgSrc === "string") { // 将新签名字迹作为Base64编码字符串存储起来供之后查看 onShiftPersonUrl.value = imgSrc; } } </script> ``` 上述代码片段展示了怎样通过监听事件获取到由用户绘制而成的数据URL形式的结果,并据此更新视图状态以反映最新的变化情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值