html5手写签名

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta content="width=device-width,initial-scale=1,maximum-scale=1" name="viewport" />
    <title>sxqm</title>
    <meta name="format-detection" content="telephone=no">
    <script src="/assets/js/jquery.min.js" type="text/javascript"></script>
    <script src="/assets/js/jquery.mobile.custom.min.js" type="text/javascript"></script>
</head>
<body>
    <canvas id="myCanvas"></canvas>
    <div>
        <button onclick="clean();">清 空</button>
        <button onclick="save();">生成图片</button>
    </div>
</body>
</html>
var canvas, board;
     canvas = document.getElementById(‘myCanvas‘);
     canvas.height = 300;
     canvas.width = 400;

     board = canvas.getContext(‘2d‘);
     board.lineWidth = 1; //设置画笔粗细
     board.strokeStyle = "#f00";
     board.lineJoin = "round"; //设置画笔轨迹基于圆点拼接

     var mousePress = false;
     var last = null;

     function beginDraw(event) {
         mousePress = true;
     }
     function endDraw(event) {
         mousePress = false;
         event.preventDefault();
         last = null;
     }
     function drawing(event) {
         event.preventDefault();
         if (!mousePress) return;
         var xy = GetPos(event);
         if (last != null) {
             board.beginPath();
             board.moveTo(last.x, last.y);
             board.lineTo(xy.x, xy.y);
             board.stroke();
         }
         last = xy;
     }

     function GetPos(event) {
         var isTouch = event.type.indexOf(‘touch‘) >= 0 ? true : false;
         var x = isTouch ? event.touches[0].pageX : event.offsetX + event.target.offsetLeft;
         var y = isTouch ? event.touches[0].pageY : event.offsetY + event.target.offsetTop;
         return { x: x, y: y };
     }

     function save() {
         var data = canvas.toDataURL("image/png"); //把canvas画板上的内容转成指定格式图片数据,并进行Base64编码
         var img = new Image();
         img.src = data;
         $(document.body).append(img);
     }

     function clean() {
         board.clearRect(0, 0, canvas.width, canvas.height);
     }

     canvas.onmousedown = beginDraw;
     canvas.onmousemove = drawing;
     canvas.onmouseup = endDraw;
     canvas.addEventListener(‘touchstart‘, beginDraw, false);
     canvas.addEventListener(‘touchmove‘, drawing, false);
     canvas.addEventListener(‘touchend‘, endDraw, false);
时间: 2024-08-30 04:41:18

html5手写签名的相关文章

wex5 实战 手写签名与上传

之前做过一个物流演示模块,有一个功能没做完,就是收件人收货后,可以手写签名并上传,替代传统纸张的签名.今天终于做完了. 一 效果演示: 后台图片上传成功 二 设计思路: 运用canvas插件jq-signature,制作手写签名,并通过二进制流方式上传图片 三 代码实现: 1 .下载引入插件jq-signature 手写签名插件,网上有很多,经过多种插件的逐步尝试,只有插件jq-signature达到了我想要的效果; 原因有二:1,支持手机触摸,web,鼠标.其它有的不支持手机触摸. 2,直接转

jSignature手写签名的实现

jSignature.js是实现手写签名的插件,由于jSignature.js是基于jQuery的,所以使用时需要先引入jQuery.切记!!! 具体使用方法如下: 第一步,下载jSignature.js,从哪下载呢?https://github.com/brinley/jSignature  感谢GitHub 第二步,引入jQuery 和 jSignature.js 第三步,生成html结构 <div id="signature" style="height: 100

html5 手写的canvas实现

试用支持canvas的浏览器,无JS依赖,运用新的HTML5技术DrawBoard.renderDrawer('myHandWrite',{  penColor:'#FF0000',  penWidth:'1px'});仅一段代码就可渲染出整个绘图板?1. [文件] Drawer.js /*** @class Canvas DrawBoard* @author Jason <[email protected]>* @version 1.1* @singleton* @fileoverview*

jSignature手写签名

<!DOCTYPE html> <html lang="zh-CN"> <head> <title>手写板签名demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta charset="UTF-8"> <meta name=&qu

Android手写开源项目和资料搜集

引言 Android的手写效率一直是件头疼的事情,比如手写效率.笔锋效果.手掌抑制等等,本文搜集了关于手写的开源项目和一些相关的文章资料. 开源项目 1 android-signaturepad 项目地址:android-signaturepad 项目介绍:这是一款银行手写签名的应用,通过event的getHistory方法获取存储在MotionEvent中的历史点,大大提高了手写的流畅度,通过算法实现了笔锋效果. 2  Markers 项目地址:Markers 项目介绍:这是一款带有笔锋效果的

WORD2003电子签名插件(支持手写、签章)

1.引言 WORD电子签名插件,支持手写.本地电子图章.以及网络图章功能.软件使用VC6,以ATL方式编写,软件小巧精致. 这是我学习ATL的成果,学习过程及程序的编写,前前后后共用了一个多月的时间,花了不少的心血.其间遇到了不少困难,终于都一一解决了.这要感谢www.csdn.net上的热心朋友,从他们的BLOG文章中,我获得了不少灵感.现在这个软件基本完成了,全部实现了我自己定的设计需求,自己觉得这个软件还有一定的用处,就把它的测试版发布一下,希望使用者多提宝贵意见.  注:测试版没有任何的

android-------手写签名系统的设计与实现之实现画笔设置

引自:http://www.xuebuyuan.com/1754358.html 既然我们实现了画布和画笔,也实现了手写,为了提高可用性,我们增加了对画笔风格的设置功能,这样就可以根据自己的需要选择画笔的颜色.粗细.风格(铅笔.浮雕.水彩等)效果.今天我们就介绍画笔风格的设置功能的实现过程,先看看效果图:                          一.实现原理: 1.对话款我们用的是popupwindow,不是alertdialog对话框,两者是有区别的:前者是阻塞型,即popupwin

React深入 - 手写redux api

简介: 手写实现redux基础api createStore( )和store相关方法 api回顾: createStore(reducer, [preloadedState], enhancer) 创建一个 Redux store 来以存放应用中所有的 state reducer (Function): 接收两个参数,当前的 state 树/要处理的 action,返回新的 state 树 preloadedState: 初始时的 state enhancer (Function): stor

手写区块链(二):区块链开发中的密码学知识

手写区块链中会采用各种密码学知识 对称加密-加密秘钥和解密秘钥是同一个,缺点是秘钥无法被安全传递,常用的对称加密算法有 DES,3DES(TripleDES),AES 非对称加密-公钥加密,私钥解密 公钥由私钥生成,私钥可以推导出公钥,公钥无法推导出私钥.优点:解决秘钥传输中的安全行问题. 常用算法RSA,ECC 如何验证发送方是正确的 哈希:将一段数据经过计算转换成一段定长数据 不可逆性:几乎无法通过哈希推导出原文 无碰撞性:两个不同的原文hash后值一定不一样 常用算法MD5,SHA256