您的位置:首页 > 移动开发

原生JS实现canvas移动端电子签名板/画板

2019-04-28 15:22 555 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Haozi_Din/article/details/89638873

GitHub链接-完整文档

最近做一个移动端项目, 有电子签名功能, 生产PNG格式上传服务器, 而且需要横屏签名, 这需要注意移动端的横屏后宽高的变化, 以下是JS核心部分, 完整文档请点击上面链接

[code]    var canvas = document.getElementById("canvas");
//动态设置宽高
canvas.width = 400;
canvas.height = 300;

var content = canvas.getContext("2d");
//设置画笔的样式
content.strokeStyle = "#000";
content.lineWidth = 1;
content.lineCap = 'round';
content.lineJoin = 'round';
content.shadowBlur = 1;
content.shadowColor = '#000';

content.beginPath();
//点击
canvas.addEventListener("touchstart", function(e) {
content.beginPath();
var touch = e.targetTouches[0];
var x = touch.pageX - canvas.offsetLeft;
var y = touch.pageY - canvas.offsetTop;
content.moveTo(x, y);
});
//移动
canvas.addEventListener("touchmove", function(event) {
event.preventDefault();
var touch = event.targetTouches[0];
var x = touch.pageX - canvas.offsetLeft;
var y = touch.pageY - canvas.offsetTop;
content.lineTo(x, y);
content.stroke();
});
//结束
canvas.addEventListener("touchend", function(event) {
content.closePath();
$('.but2').attr('disabled', false);
});
//清除画布 .but1元素 点击事件
document.querySelector(".but1").onclick = function() {
content.clearRect(0, 0, canvas.offsetWidth, canvas.offsetHeight);
}

竖屏效果:

横屏效果:

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: