官网JSsignature_pad
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="IE=edge, chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<title>无纸化签名</title>
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="yes" name="apple-touch-fullscreen">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src = "https://cdn.jsdelivr.net/npm/signature_pad@2.3.2/dist/signature_pad.min.js "> </script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/signature_pad@2.3.2/example/css/signature-pad.css">
</head>
<body>
<div id="signature-pad" class="signature-pad">
<div class="description tc">签名区域</div>
<div class="signature-pad--body">
<canvas id="signature-canvas"></canvas>
<i class="leftup lefta"></i>
<i class="leftup rightup"></i>
<i class="leftup leftdown"></i>
<i class="leftup rightdown"></i>
</div>
<div class="signature-pad--footer">
<button type="button" class="buttonclear clear" id="clear" data-action="clear">重签</button>
<button type="button" class="buttonclear clear" id="save" data-action="clear">确定</button>
</div>
</div>
</body>
<script type="text/javaScript">
var canvas = document.getElementById('signature-canvas');
var signaturePad = new SignaturePad(canvas, { backgroundColor: '#DEDEDE', penColor: 'rgb(0, 0, 0)' });
var saveButton = document.getElementById('save');
var cancelButton = document.getElementById('clear');
saveButton.addEventListener('click', function (event) {
if(signaturePad.isEmpty()){
alert("不能为空")
}
var imgStr = signaturePad.toDataURL('image/png');
imgStr=imgStr.substring(22,imgStr.length);
$.ajax({
type: "POST",
url: "",
data:{
imgStr:imgStr
},
dataType:"json",
success: function(data){
}
});
});
cancelButton.addEventListener('click', function (event) {
signaturePad.clear();
});
function resizeCanvas() {
var ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
signaturePad.clear();
}
window.onresize = resizeCanvas;
resizeCanvas();
</script>
</html>
方法:
方法名称 | 使用方法 | 说明 |
---|
clear | .jSignature("clear") | 清空并重置画布 |
getData | .jSignature("getData", "base30") | 将画布转换为base64编码的数据字符串,可以在表单发布或提交时将其保存为任何数据库中的字符串 |
importData | .jSignature("importData",dataurl) | 使用从上述getData方法提取的数据URL更新现有的jSignature画布 |
选项参数:
参数名称 | 说明 | 默认值 |
---|
width | 定义画布的宽度。 没有%或px的数值(新版是可以使用百分比和px后缀的) | 250 |
height | 定义画布的高度。 没有%或px的数值(新版是可以使用百分比和px后缀的) | 150 |
color | 定义画布上笔画的颜色。 接受任何颜色十六进制值 | #000 |
background-color | 定义画布的背景颜色。 接受任何颜色十六进制值 | #fff |
lineWidth | 定义线的厚度。 接受任何正数值(也是默认画布的横线的画笔的宽度) | 1 |
cssclass | 定义画布的自定义css类 | None |