JavaScript/jQuery 签名板

标签 javascript jquery signaturepad

请问有没有办法转账<canvas>内容到另一个<div> 。这样放上签名后,就会在<div>里面预览。它被转移到。

我用过这个库https://github.com/szimek/signature_pad在我们之前的项目中,签名看起来很真实,就像是用钢笔写的一样。

这个库可以将签名保存到文件中,所以我在之前的项目中所做的是,一旦提交表单,签名就会被保存,并且可以通过将源文件附加到 <img> 来预览签名。元素。

我想做的是我有一个<button>这将显示一个包含签名板的模态,一旦模态关闭,签名将被转移到另一个 <div>其中它的大小将根据 div 的大小缩小,而无需将签名保存在文件上。

谢谢。

最佳答案

看看HTMLCanvasElement.toDataURL 。这将为您提供 Canvas 图像 Data URI ,然后您可以将其作为图像添加到您的页面。

这是一个简单的例子:

let canvas = document.querySelector('canvas'),
    ctx = canvas.getContext('2d');

// Draw something
ctx.fillStyle = "lightgray";
ctx.fillRect(0, 0, 200, 100);
ctx.fillStyle = 'orange';
ctx.fillRect(20, 20, 160, 60);
ctx.fillStyle = 'black';
ctx.font = "50px monospace";
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillText("image", 100, 50);

// Make the image and put it in the output
let uri = canvas.toDataURL('image/png'),
    outdiv = document.querySelector('#out'),
    outimg = new Image();
outimg.src = uri;
outdiv.appendChild(outimg);
<div style="display: inline-block;">
  <h6>Canvas with border</h6>
  <canvas width="200" height="100"
          style="border: 1px solid black;">
  </canvas>
</div>

<div style="display: inline-block;">
  <h6>Output image in a <code>div</code></h6>
  <div id="out"></div>
</div>

关于JavaScript/jQuery 签名板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58126247/

相关文章:

javascript - 我的 javascript 代码发生了什么,它不符合流程

javascript - 使用水线标准来验证对象?

javascript - 具有复选框选择和元素引用禁用功能的 Aurelia 数组绑定(bind)

jquery - :invalid and :required CSS pseudo-classes don't work with jQuery traversing methods when selector matches multiple form elements

javascript - 在 jquery-ui 自动完成上设置自定义输入字段值

javascript - jquery改变对象的值

javascript - 如何使用 Javascript 在 HTML 表格中动态生成列

Jquery添加和删除一个div的多个类

angular - 导航失败 : Template parse errors: Can't bind to 'options' since it isn't a known property of 'signature-pad'

javascript - 经典 ASP 和签名板