手写签名

html,body{

margin: 0;

padding: 0;

}

.saveimg{

text-align: center;

}

.saveimgs span{

display: inline-block;

margin-top:5px;

}

清空画板

Line width :

1

3

5

7

9

11

Color :

black

blue

red

green

yellow

gray

保存

var mousePressed = false;

var lastX, lastY;

var ctx = document.getElementById('myCanvas').getContext("2d");

var c = document.getElementById("myCanvas");

// console.log(c)

// console.log(c2)

var control = document.getElementsByClassName("control")[0];

var saveimgs = document.getElementsByClassName("saveimgs")[0];

window.onload = function(){

InitThis();

}

function saveImageInfo(){

var image = c.toDataURL("image/png");

var ctximg = document.createElement("span");

ctximg.innerHTML = "";

if(saveimgs.getElementsByTagName('span').length >= 1){

var span_old = saveimgs.getElementsByTagName("span")[0];

saveimgs.replaceChild(ctximg,span_old)

}

else{

saveimgs.appendChild(ctximg);

}

// console.log(image)

}

var selected1,selected2;

function aaa(){

var sel = document.getElementById('selWidth');

var value = sel.selectedIndex;

return selected1 = sel[value].value;

}

function aaa2(){

var sel2 = document.getElementById('selColor');

var value = sel2.selectedIndex;

return selected2 = sel2[value].value;

}

function InitThis() {

// 触摸屏

c.addEventListener('touchstart', function (event) {

console.log(1)

if (event.targetTouches.length == 1) {

event.preventDefault();// 阻止浏览器默认事件,重要

var touch = event.targetTouches[0];

mousePressed = true;

Draw(touch.pageX - this.offsetLeft, touch.pageY - this.offsetTop, false);

}

},false);

c.addEventListener('touchmove', function (event) {

console.log(2)

if (event.targetTouches.length == 1) {

event.preventDefault();// 阻止浏览器默认事件,重要

var touch = event.targetTouches[0];

if (mousePressed) {

Draw(touch.pageX - this.offsetLeft, touch.pageY - this.offsetTop, true);

}

}

},false);

c.addEventListener('touchend', function (event) {

console.log(3)

if (event.targetTouches.length == 1) {

event.preventDefault();// 阻止浏览器默认事件,防止手写的时候拖动屏幕,重要

// var touch = event.targetTouches[0];

mousePressed = false;

}

},false);

/*c.addEventListener('touchcancel', function (event) {

console.log(4)

mousePressed = false;

},false);*/

// 鼠标

c.onmousedown = function (event) {

mousePressed = true;

Draw(event.pageX - this.offsetLeft, event.pageY - this.offsetTop, false);

};

c.onmousemove = function (event) {

if (mousePressed) {

Draw(event.pageX - this.offsetLeft, event.pageY - this.offsetTop, true);

}

};

c.onmouseup = function (event) {

mousePressed = false;

};

}

function Draw(x, y, isDown) {

if (isDown) {

ctx.beginPath();

ctx.strokeStyle = selected2;

ctx.lineWidth = selected1;

ctx.lineJoin = "round";

ctx.moveTo(lastX, lastY);

ctx.lineTo(x, y);

ctx.closePath();

ctx.stroke();

}

lastX = x; lastY = y;

}

function clearArea() {

// Use the identity matrix while clearing the canvas

ctx.setTransform(1, 0, 0, 1, 0, 0);

ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);

// 清除签名图片

if(saveimgs.getElementsByTagName('span').length >= 1){

var clearImg = saveimgs.getElementsByTagName('span')[0];

saveimgs.removeChild(clearImg);

}

}

html 手写签名 撤销,[转]H5 canvas手写签名相关推荐

  1. H5 VUE实现手机签名功能

    H5 VUE实现手机签名功能 功能描述: 利用canvas实现手机签名转化成图片( 包含重绘,由于手机全屏展示 所以还添加了图片翻转) 上传后台 功能展示: 这里是封装了一个小组件 废话不多说上代码: ...

  2. vue3+h5实现手写签名

    接上 还是同一个后台 还是同一个h5页面- 先看效果 点击签字 跳转路由 canvas页面主要实现手写签名部分 <template><div class="canvasPa ...

  3. canvas 插件_基于Angular的Canvas手写签名插件

    灵感来源 之前, 在轻流的业务中遇到了一个需求, 是能够让客户使用手写签名的功能. 签名演示 问题来了, 这...我不会啊! 这得是Canvas了吧. 正所谓, 插件用的好, 下班走的早. 于是我就开 ...

  4. html5采集手写签名,前端canvas手写签名(含移动端)

    image.png 直接上代码 手写签名 html, body { margin: 0; padding: 0; } .saveimg { text-align: center; } .saveimg ...

  5. 在线签名、canvas手写在线签名——小程序端实现在线签名,手写电子签名canvas

    在线签名.canvas手写在线签名--小程序端实现在线签名,手写电子签名canvas 近期公司准备接一个政府的小项目,里头有一个在线签名的需求,老板让我研究一下.于是就...开始思考: 在线手写签名, ...

  6. android 手写签批_Android自定义实现手写签名功能

    一.Android自定义View步骤 : 自定义属性: 选择和设置构造方法: 重写onMeasure()方法: 重写onDraw()方法: 重写onLayout()方法: 重写其他事件的方法(滑动监听 ...

  7. html5 canvas手写画板 下载图片至本地

    html5 canvas手写画板 下载图片至本地 <!DOCTYPE html> <html><head><meta charset="utf-8& ...

  8. canvas 手写毛笔字效果

    <!doctype html> <html lang="en"> <head><meta charset="UTF-8" ...

  9. vue 手写签名_用 Mac 制作手写签名,没打印机也能搞事

    得益于基础设施进步,现在想搞点事,比以前快捷便利多了,线下能办的事儿一部分转到了线上,一人一机,操纵于千里. 开展业务,很多地方都会要求你提供签字授权,比如想给网站做个备案,或者想快速走个线上合同, ...

最新文章

  1. Qt动画框架The Animation Framework
  2. Oracle varchar2或char类型的byte和char的区别
  3. java C++ 实现 leetcode 第三题 3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
  4. 放大缩小保证div对齐_NFS Write IO 不对齐深度分析
  5. mysql 创建用户并授权_教你MySQL-8.0.x数据库授权
  6. 微课--25分钟学会使用Python群发电子邮件
  7. 2018蓝桥杯B组:猴子分香蕉(C++/JAVA)
  8. 超好用的数据迁移工具
  9. 【渝粤题库】陕西师范大学200841 西方法律思想史作业
  10. Fig (无花果)任务流水线式 多线程框架使用
  11. Inspector工具使用
  12. Win8/Win10 Ctrl+Alt+方向键 屏幕显示翻转解决办法
  13. Java项目:基于ssm汽车配件管理系统(计算机毕业设计)
  14. php var的解释
  15. 关于ascii编码的原理,特征及用途
  16. vrf中的ipsec
  17. 黑莓Curve 9360拥有NFC技术
  18. Centos Linux 单机安装 Hive 、使用 Hive
  19. 【c语言】在一个一维整数组中找出其中最大的数及其下标
  20. gzip 解压_简简单单_百度空间

热门文章

  1. ShareSDK实现微信分享,QQ授权登录
  2. 关于玄武集团MOS云平台的使用笔记
  3. AdBlock屏蔽CSDN博客搜索框中自动切换的关键词
  4. 史上最严格的实名制是否能解决电信骚扰诈骗
  5. C语言单相智能电表课程设计,51单片机电子跑表课程设计报告 含源代码,原理图,word文档...
  6. 基于51单片机数控可调恒流源设计(实物图+原理图+PCB+论文)
  7. cuDNN学习笔记(3)-- 卷积公式
  8. 在冰海之上静观日出日落
  9. 模拟光伏不确定性——拉丁超立方抽样生成及缩减场景(Matlab全代码)
  10. 区块链浏览器环境配置二--创建数据库