pc端,使用jsignature,实现签名功能

遇到一个需求,PC端用鼠标签名,还要有撤回功能、重置功能,最后要转换成base64格式的图片,找了很久插件,最后还是决定使用jsignature-master插件完成

下载网址:jQuery手写签名插件jSignature

代码实现:

创建对应的div 

  <div
        id="signture"
        style="
          border: 1px solid #4587ff;
          height: 190px;
          margin-left: 37px;
          margin-right: 32px;
          position: relative;
          margin-top: 10px;
        "
      >
        <div id="btn" style="position: absolute; right: 9px; bottom: 8px">
          <button
            class="reset"
            id="reset"
            style="background: #fff; border: none"
          >
            <img
              src="./images/reset.png"
              alt=""
              style="height: 18px; width: 18px"
            />
          </button>
        </div>
      </div>

对应的js代码

 <script src="./libs/jSignature.min.js"></script>

<script>
 $("#signture").jSignature({
        width: "100%", //签名区域的宽
        height: "100%", //签名区域的高
        cssclass: "zx11", //画布的类 可以写自定义的样式
        UndoButton: true, //撤销按钮的状态 这个按钮的样式修改要去jSignature.js文件中去找
        signatureLine: false, //去除默认画布上那条横线
        lineWidth: "2", //画笔的大小
        color: "#333333", //画笔的颜色
   });
</script>

这样简单的画布就好了

因为回退功能是自带的 所以直接用就好了,因为样式很丑,所以要自己修改这个回退按钮的样式,回退样式需要到jsignature.js里面去修改

$.fn.jSignature("addPlugin", "instance", "UndoButton", function (k) {
    this.events.subscribe("jSignature.attachingEventHandlers", function () {
      if (this.settings[k]) {
        var g = this.settings[k];
        "function" !== typeof g &&
          (g = function () {
            var g = $(
                '<button class="withdraw" id="withdraw" style="position: absolute;right: 38px; bottom: -6.5px;background:#fff;border: none;"><img src="./images/withdraw-blue.png" alt="" style="height: 18px;width: 18px;"></button>'
              ).appendTo(this.$controlbarLower),
              k = g.width();
            k !== g.width() && g.width(k);
            return g;
          });
        t.call(this, g, "jSignature", k);
      }
    });
  })

// 在引入的js文件中找到这一段代码,我引入的是jSignature.min.js,上面的button按钮就是回退按钮,修改成自己需要的样式就好了 

重置功能使用插件定义的方法调用reset就好

$("#reset").click(function () {
        var $signArea = $("#signture");
        //重置
        $signArea.jSignature("reset");
      });

最后要生成base64的的图片

如下:

 $("#sure").click(function () {
        if ($("#signture").jSignature("getData", "native").length === 0) {
          alert("请签名后再提交!");
          return;
        }
        var datapair = $("#signture").jSignature("getData", "image");
        var i = new Image();
        i.src = "data:" + datapair[0] + "," + datapair[1];
        console.log(i);
      });

 注:第一次写,本来想放图片的,结果图片上传不了。。不对的地方欢迎大家提出来。。谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值