HTML5 Canvas 实现在线签字功能(示例代码)
<!DOCTYPE html>
<html>
<head>
<title>在线签字</title>
</head>
<body>
<canvas id="signature-pad" width="300" height="150"></canvas>
<button onclick="clearSignature()">清除</button>
<button onclick="saveSignature()">保存</button>
<script src="script.js"></script>
</body>
</html>
const canvas = document.getElementById('signature-pad');
const ctx = canvas.getContext('2d');
let isDrawing = false;
let lastX = 0;
let lastY = 0;
canvas.addEventListener('mousedown', (e) => {
isDra 1. github.com
github.comwing = true;
[lastX, lastY] = [e.offsetX, e.offsetY];
});
canvas.addEventListener('mousemove', (e) => {
if (!isDra 1. github.com
github.comwing) return;
drawLine(lastX, lastY, e.offsetX, e.offsetY);
[lastX, lastY] = [e.offsetX, e.offsetY];
});
canvas.addEventListener('mou 1. github.com
github.comseup', () => {
isDrawing = false;
});
function drawLine(x1, y1, x2, y2) {
ctx.beginPath();
ctx.moveTo(x1, y1);
ctx.lineTo(x2, y2);
ctx.stroke();
}
function clearSignature() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function saveSignature() {
const dataURL = canvas.toDataURL();
// 将 dataURL 发送到服务器进行保存,例如使用 AJAX
console.log(dataURL); // 在控制台输出 dataURL,用于演示
}
drawLine
函数绘制线条。clearSignature
函数用于清除画布。saveSignature
函数将 canvas 内容转换为 dataURL,可以将其发送到服务器进行保存。将上述 HTML 和 JavaScript 代码保存为两个文件(index.html 和 script.js),并在浏览器中打开 index.html 即可体验在线签字功能。
更多功能和优化可以根据具体需求进行扩展。
想了解更多关于 Canvas 的用法和示例,可以参考以下资源:
希望这个示例能帮助你实现在线签字功能!
如果你还有其他问题,欢迎随时提问。
请问你还有其他关于 Canvas 或在线签字功能的问题吗?