范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

一文解读前端实现电子签名

  大家好,我是Echa。
  创作不易,喜欢的老铁们加个关注,点个赞,后面会持续更新干货,速速收藏,谢谢!
  在现在的时代发展中,从以前的手写签名,逐渐衍生出了电子签名。电子签名和纸质手写签名一样具有法律效应。电子签名目前主要还是在需要个人确认的产品环节和司法类相关的产品上较多。
  举个常用的例子,大家都用过钉钉,钉钉上面就有电子签名,相信大家这肯定是知道的。
  那作为前端的我们如何实现电子签名呢?其实在 html5 中已经出现了一个重要级别的辅助标签,是啥呢?那就是canvas 。下面我给大家分享分享几个关于前端如何实现电子签名经典案例以及实现方法。什么是canvas
  Canvas(画布)是在HTML5中新增的标签用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的位图(bitmap)。Canvas 对象表示一个 HTML 画布元素 -。它没有自己的行为,但是定义了一个 API 支持脚本化客户端绘图操作。
  大白话就是canvas是一个可以在上面通过javaScript画图的标签,通过其提供的context(上下文)及Api进行绘制,在这个过程中canvas充当画布的角色。实现电子签名
  知道几何的朋友都很清楚,线由点绘成,面由线绘成。
  多点成线,多线成面。
  所以我们实际只需要拿到当前触摸的坐标点,进行成线处理就可以了。  全文大纲vue-//imgq01.71396.com/bl/xg/233f4def5c875875.jpg-canvas 一个基于canvas开发,封装于Vue组件的通用手写签名板//imgq01.71396.com/bl/xg/233f4def5c875875.jpgature Pad 是一个用于绘制平滑签名的JavaScript库。纯JavaScript实现电子签名,同时支持Web端和移动端。 vue-//imgq01.71396.com/bl/xg/233f4def5c875875.jpg-canvas
  在线预览:https://langyuxiansheng.github.io/vue-//imgq01.71396.com/bl/xg/233f4def5c875875.jpg-canvas/
  Github:https://github.com/langyuxiansheng/vue-//imgq01.71396.com/bl/xg/233f4def5c875875.jpg-canvas
  vue-//imgq01.71396.com/bl/xg/233f4def5c875875.jpg-canvas 一个基于canvas开发,封装于Vue组件的通用手写签名板(电子签名板),支持pc端和移动端,属性支持自定义配置
  组件模板使用  横屏全屏模式下签名要怎么显示?         
  如下图:
  //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature Pad
  在线预览:http://szimek.github.io///imgq01.71396.com/bl/xg/233f4def5c875875.jpgature_pad/
  Github:https://github.com/szimek///imgq01.71396.com/bl/xg/233f4def5c875875.jpgature_pad
  //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature Pad是一个用于绘制平滑签名的JavaScript库。它基于HTML5画布,使用基于Square发布的Smoother //imgq01.71396.com/bl/xg/233f4def5c875875.jpgatures的可变宽度Bézier曲线插值。它适用于所有现代桌面和移动浏览器,不依赖任何外部库。
  核心代码:const canvas = document.querySelector("canvas");  const //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad = new //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad(canvas);  // Returns //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature image as data URL (see https://mdn.io/todataurl for the list of possible parameters) //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.toDataURL(); // save image as PNG //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.toDataURL("image/jpeg"); // save image as JPEG //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.toDataURL("image/jpeg", 0.5); // save image as JPEG with 0.5 image quality //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.toDataURL("image/svg+xml"); // save image as SVG data url  // Return svg string without converting to base64 //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.toSVG(); // "" //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.toSVG({includeBackgroundColor: true}); // add background color to svg output  // Draws //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature image from data URL (mostly uses https://mdn.io/drawImage under-the-hood) // NOTE: This method does not populate internal data structure that represents drawn //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature. Thus, after using #fromDataURL, #toData won"t work properly. //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.fromDataURL("data:image/png;base64,iVBORw0K...");  // Draws //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature image from data URL and alters it with the given options //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.fromDataURL("data:image/png;base64,iVBORw0K...", { ratio: 1, width: 400, height: 200, xOffset: 100, yOffset: 50 });  // Returns //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature image as an array of point groups const data = //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.toData();  // Draws //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature image from an array of point groups //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.fromData(data);  // Draws //imgq01.71396.com/bl/xg/233f4def5c875875.jpgature image from an array of point groups, without clearing your existing image (clear defaults to true if not provided) //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.fromData(data, { clear: false });  // Clears the canvas //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.clear();  // Returns true if canvas is empty, otherwise returns false //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.isEmpty();  // Unbinds all event handlers //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.off();  // Rebinds all event handlers //imgq01.71396.com/bl/xg/233f4def5c875875.jpgaturePad.on();
  如下图:
  纯JavaScript实现电子签名
  完整版:                      Document                                           各内核和浏览器支持情况
  Mozilla 程序从 Gecko 1.8 (Firefox 1.5 (en-US)) 开始支持 。它首先是由 Apple 引入的,用于 OS X Dashboard 和 Safari。Internet Explorer 从 IE9 开始支持 ,更旧版本的 IE 中,页面可以通过引入 Google 的 Explorer Canvas 项目中的脚本来获得支持。Google Chrome 和 Opera 9+ 也支持 。小程序中提示
  在小程序中我们如果需呀实现的话,也是同样的原理哦,只是我们需要将创建实例和上下文的Api进行修改,因为小程序中是没有dom,既然没有dom,哪来的操作dom这个操作呢。如果是uni-app则需要使用uni.createCanvasContext进行上下文创建如果是原生微信小程序则使用wx.createCanvasContext进行创建(2.9.0)之后的库不支持

都说华为P60价格太贵?还值不值得买?我给出了三个理由华为P60发布之后,我看到网上探讨最多的是价格问题,都说P60太贵了,但实际上P60与上一代的P50系列定价是一样的,相比之下还升级了很多配置,可以说是加量不加价了。当然与友商同配iPhone15Pro15ProMax新配色曝光,相机模组变得更突出了3月26日消息,有数码博主曝光了iPhone15Pro15ProMax的新配色。不难看出,一共曝光了四款配色,分别是RoseGoldSilverSpaceBlackDeepRed,阿里巴巴蔡崇信老板投资200多亿元,这些年是赚钱还是赔钱了呢?头条创作挑战赛蔡崇信老板祖籍浙江湖州,出生于1964年,目前是加拿大籍华人。现任阿里巴巴执行副主席。2018年4月他以个人身份10亿美元收购了篮网队49的股份,之后又从俄罗斯富豪MiPhone这些鲜为人知的20个功能iPhone系统更新频繁,随着新版本的推出,很多新的功能也会被添加到系统中,但并不是所有用户都会及时了解这些更新。除此之外,有些用户可能只使用iPhone的基本功能,对于更深层次的TikTok被禁数字时代下的新冷战?对全球深远影响分析在TikTok在美国被禁用后,对美国政府形象美国投资环境国际社会对美国的看法美国用户影响及看法,可能造成了一系列负面影响。首先,TikTok被禁用对美国政府形象带来了负面影响。美国潘多拉的魔盒已经打开,回不去了原创牧之野潘多拉的魔盒已经打开,回不去了原创牧之野牧之野202303261048发表于北京收录于合集牧之野国际时政评论187个就算知道世界明天就要毁灭,人类今天依然会不忘勾心斗角。上周人工智只想买部流畅刷视频的手机,该怎么选?这四款质量好,最高1499元如果您喜欢,可以点击上面的关注二字。后续会为您提供更多有价值的内容。今天分享只想买部流畅刷视频的手机,该怎么选?这四款质量好,最高1499元第一款iQOOZ6X参考价格1238元(ChatGPT在未来会取代厨师?餐饮圈会被Ai科技怎样改变最近全世界兴起了一股ChatGPT旋风。仿生的聊天机器人可以回答任何问题,甚至像朋友一样交流,每个人都在瞪大眼睛看着自己的产业会如何被这股飓风改变。餐饮圈也一样,人工智慧早就已经悄ChatGPT每日问答什么是众议院听证会大有学问ChatGPT(ChatGenerativePretrainedTransformer聊天生成型预训练变换模型)是由OpenAI开发并于2022年11月推出的以聊天为界面的联想拯救者Y9000P至尊版2023款开售8999元起CNMO新闻前不久,联想拯救者举行发布会,带来了2023春季生态新品,其中包括拯救者Y9000P2023和Y9000P2023至尊版游戏本等新品。这两款新品已于今天中午正式开售,起Ingress自动颁发永久免费证书安装certmanagerhelmrepoaddjetstackhttpscharts。jetstack。iohelminstallnametemplatecertmanagern
连花清瘟N95口罩云南保供现货这样买云南网讯(记者杨萍龙彦)为保障云南新冠患者的抗疫用药需求,在工信部的统一协调下,在云南省工信厅商务厅的积极支持下,京东健康专供云南的连花清瘟N95口罩上线了,价格实惠精准保供,让急传统与创新,岭南文脉的三水再发现重构跨越编者按佛山市委十三届五次全会提出肩负起新时代新征程的历史使命,佛山要积极探索中国式现代化的佛山路径,做新时代改革开放的示范,抢抓制造业当家重大机遇,创建城乡区域协调发展示范市,建设粤港澳大湾区共62人入选胡润U30中国创业先锋日前,胡润研究院携手广州市番禺区联合发布2022广州市番禺区胡润U30中国创业先锋(GuangzhouPanyuHurunChinaUnder30s2022),旨在寻找中国30岁以击破非法网站保护壳党的二十大报告指出,健全网络综合治理体系,推动形成良好网络生态。近期,云南警方在全国首次对违法域名代理商进行打击,历时1年多,摧毁了一条专门为诈骗涉黄赌博等非法网站提供域名防封堵服华为天才少年稚晖君发文确认离职,称将进行创业Tech星球12月27日消息,以天才少年身份加入华为的稚晖君近日被曝已经离职,将开启创业,今天中午稚晖君在社交平台发文回应称传言属实,已经离开华为,将开始创业。稚晖君称传言不虚,细2022年买了一台六年前的老款华为Mate10Pro,真是让我欢喜让我忧华为Mate10Pro是2017年唯一能代表华为在4000元高端市场站稳脚跟的手机,距离Mate10Pro的发布已经过去了6年,那一台六年前的华为Mate10Pro,放现在,依旧耐晒大学考试满分成绩遭网友质疑,谷爱凌发文怒怼近日,新华社体育部评出2022年中国十佳运动员,19岁的自由式滑雪运动员谷爱凌成功入选,她在今年获得北京冬奥会自由式滑雪女子大跳台与U型场地技巧两枚金牌,还获得坡面障碍技巧的银牌,荣耀新平板上市,iPad迎来新对手!爆料绿厂新平板也在路上了?可见,目前平板电脑的使用场景越来越丰富,除了用户日常办公与线上学习的场景,还有娱乐影音也是做到了极致。以至于,众多品牌厂商也在逐渐提升产品体验,令平板电脑成为日常全场景都具备较高生iPhone14Pro翻车了,网友爆料开机故障,人民网的提醒要注意在iPhone14系列发布后,iPhone14标准版被嫌弃,iPhone14Pro系列则变成了新一代真香机。但没想到的是,iPhone14Pro也翻车了。第一次翻车,是iPhone结合图数据库图算法机器学习GNN如何实现推荐系统?本文是一个基于NebulaGraph上图算法图数据库机器学习GNN的推荐系统方法综述,大部分介绍的方法提供了Playground供大家学习。基本概念推荐系统诞生的初衷是解决互联网时华为天才少年稚晖君宣布离职,曾年薪百万,被任正非点赞12月27日,曾以天才少年身份入职华为的博主稚晖君在微博上表示,自己已从华为离职,接下来将开启一段新事业,做更有挑战的事情。稚晖君称,君子战虽有陈,而勇为本焉,年轻热血不知天高地厚