html5+canvas实现支持触屏的签名插件教程


Posted in Javascript onMay 08, 2017

前言

大家在日常开发中使用该jQuery插件来制作在线签名,用户绘制的东西以图片的形式保存下来,非常方便实用。下面将实现支持的方法分享给大家,供大家参考学习,下面来一起看看详细的介绍吧。

方法如下:

使用该签名插件要引入jQuery和jq-signature.js文件。

<script src="jquery/1.11.0/jquery.min.js"></script>
<script src="jq-signature.js"></script>

html5+canvas实现支持触屏的签名插件教程

HTML结构

<!-- 创建一个签名区域,使用HTML5的data-option来传递一些参数 -->
<div class="js-signature" 
 data-width="600" 
 data-height="200" 
 data-border="1px solid #1ABC9C" 
 data-background="#16A085" 
 data-line-color="#fff" 
 data-auto-fit="true">
</div>
 
<!-- 创建两个操作按钮,分别用于清空画板和保存签名 -->
<button id="clearBtn" onclick="clearCanvas();">Clear Canvas</button>
<button id="saveBtn" onclick="saveSignature();" disabled>Save Signature</button>
 
<!-- 可以使用一个空的<div>来显示保存的签名图片 -->
<div id="signature"></div>

初始化插件

//页面加载完毕之后使用下面的方法来初始化该签名插件
$(document).on('ready', function() {
 $('.js-signature').jqSignature();
});
 
function clearCanvas() {
 $('#signature').html('<p><em>Your signature will appear here when you click "Save Signature"</em></p>');
 $('.js-signature').jqSignature('clearCanvas');
 $('#saveBtn').attr('disabled', true);
}
 
function saveSignature() {
 $('#signature').empty();
 var dataUrl = $('.js-signature').jqSignature('getDataURL');
 var img = $('<img>').attr('src', dataUrl);
 $('#signature').append($('<p>').text("Here's your signature:"));
 $('#signature').append(img);
}
 
$('.js-signature').on('jq.signature.changed', function() {
 $('#saveBtn').attr('disabled', false);
});

配置参数

下面是该签名插件的一些可用参数,这些参数可以同时在data-attributes上使用:

参数 描述 Data Attribute 示例
Width 签名canvas的宽度,单位像素,默认值300 data-width="600" $().jqSignature({width: 600});
Height 签名canvas的高度,单位像素,默认值100 data-height="200" $().jqSignature({height: 200});
Border 签名canvas的边框CSS样式。默认为'1px solid #AAAAAA' data-border="1px solid red" $().jqSignature({border: '1px solid red'});
Background 签名canvas的背景颜色,默认值为'#FFFFFF' data-background="#EEEEEE" $().jqSignature({background: '#EEEEEE'});
Line Color 签名的颜色。默认值为#222222' data-line-color="#ABCDEF" $().jqSignature({lineColor: '#ABCDEF'});
Line Width 签名的线宽,单位像素,默认值为1 data-line-width="2" $().jqSignature({lineWidth: 2});
Auto Fit 使canvas占满父元素的宽度,默认值false data-auto-fit="true" $().jqSignature({autoFit: true});

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascript 24小时弹出一次的代码(利用cookies)
Sep 03 Javascript
javascript 表格内容排序 简单操作示例代码
Jan 03 Javascript
jQuery中position()方法用法实例
Jan 16 Javascript
在页面中输出当前客户端时间javascript实例代码
Mar 02 Javascript
js获取Get值的方法
Sep 29 Javascript
微信小程序访问node.js接口服务器搭建教程
Apr 25 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
Nov 27 Javascript
Vuex 进阶之模块化组织详解
Jan 12 Javascript
微信小程序图片轮播组件gallery slider使用方法详解
Jan 31 Javascript
ionic2中使用自动生成器的方法
Mar 04 Javascript
javascript实现blob加密视频源地址的方法
Aug 08 Javascript
微信小程序连续签到7天积分获得功能的示例代码
Aug 20 Javascript
JQuery实现图片轮播效果
May 08 #jQuery
jQuery中的deferred对象和extend方法详解
May 08 #jQuery
vue 2.0路由之路由嵌套示例详解
May 08 #Javascript
node.js中EJS 模板快速入门教程
May 08 #Javascript
详解用node-images 打造简易图片服务器
May 08 #Javascript
vue.js中Vue-router 2.0基础实践教程
May 08 #Javascript
angular实现IM聊天图片发送实例
May 08 #Javascript
You might like
php 301转向实现代码
2008/09/18 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
PHP new static 和 new self详解
2017/02/19 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
Javascript 异步加载详解(浏览器在javascript的加载方式)
2012/05/20 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
python更新列表的方法
2015/07/28 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
在Python中定义一个常量的方法
2018/11/10 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
不打扫卫生检讨书
2014/02/12 职场文书
少年闰土教学反思
2014/02/22 职场文书
三好学生演讲稿范文
2014/04/26 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书