微信小程序实现手写签名(签字版)

 更新时间:2022年07月08日 11:03:39   作者:工具人小胡  
这篇文章主要为大家详细介绍了微信小程序实现手写签名,签字版,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现手写签名的具体代码,供大家参考,具体内容如下

公司近期有个需要用户签名的功能,就用小程序canvas写了个

wxml

<view class="sign">
  <view class="paper">
    <canvas class="handWriting" disable-scroll="true" bindtouchstart="touchstart1" bindtouchmove="touchmove1"  canvas-id="handWriting1">
    </canvas>
  </view>
  <view class="signBtn">
    <button size="" type="primary" bindtap="sign1ok">完成签字</button> 
    <button size="" type="warn" bindtap="reSign1">重新签字</button>
  </view>
</view>
<view class="image" hidden="{{src?false:true}}">
<image src="{{src}}" ></image>
</view>

js

Page({
  data: {
    context1: null,
    hasDraw:false, //默认没有画
    src:null
  },
  onLoad: function() {
    var context1 = wx.createCanvasContext('handWriting1');
    context1.setStrokeStyle("#000000")
    context1.setLineWidth(3);
    this.setData({
      context1: context1,
    })
  },
  touchstart1: function(e) {
    var context1 = this.data.context1;
    context1.moveTo(e.touches[0].x, e.touches[0].y);
    this.setData({
      context1: context1,
      hasDraw : true, //要签字了
    });
  },
  touchmove1: function(e) {
    var x = e.touches[0].x;
    var y = e.touches[0].y;
    var context1 = this.data.context1;
    context1.setLineWidth(3);
    context1.lineTo(x, y);
    context1.stroke();
    context1.setLineCap('round');
    context1.draw(true);
    context1.moveTo(x, y);
  },
  reSign1: function() { //重新画
    var that = this;
    var context1 = that.data.context1;
    context1.draw(); //清空画布
    that.setData({
      hasDraw: false, //没有画
      src: null
    });
  },
  sign1ok: function () {
    var that = this;
    if(!that.data.hasDraw){
      console.log("签字是空白的 没有签字")
    }else{
      var context1 = that.data.context1;
      context1.draw(true, wx.canvasToTempFilePath({
        canvasId: 'handWriting1',
        success(res) {
          console.log(res.tempFilePath) //得到了图片下面自己写上传吧
          that.setData({
            src: res.tempFilePath
          })
          
        }
      }))
    }
  },
});

wxss

.paper{border:1px solid #dedede; margin: 10px; height:160px }
.image{border:1px solid #dedede; margin: 10px; height:160px }
.signBtn{display: flex; margin-top:20px;}
.signTitle{ text-align: center; font-size:1.2em;margin:10px auto;}
.handWriting{width:100%}
.image image{width:100%; height:160px }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JavaScript实现无缝轮播图的示例代码

    JavaScript实现无缝轮播图的示例代码

    这篇文章主要为大家详细介绍了如何利用JavaScript语言实现无缝轮播功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 微信小程序开发实战教程之手势解锁

    微信小程序开发实战教程之手势解锁

    这篇文章主要介绍了微信小程序开发实战教程之手势解锁的相关资料,本文分步骤给大家介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • 关于微信小程序bug记录与解决方法

    关于微信小程序bug记录与解决方法

    这篇文章主要介绍了关于微信小程序bug记录与解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • 微信小程序的注册页面包含倒计时验证码、获取用户信息

    微信小程序的注册页面包含倒计时验证码、获取用户信息

    本文通过实例代码给大家介绍了微信小程序的注册页面包含倒计时验证码、获取用户信息的相关知识,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2019-05-05
  • D3.js实现绘制柱状图的教程详解

    D3.js实现绘制柱状图的教程详解

    这篇文章主要为大家详细介绍了如何通过D3.js实现绘制柱状图,文中的示例代码讲解详细,对我们学习D3.js有一定的帮助,需要的可以参考一下
    2022-11-11
  • JavaScript实现带有子菜单和控件的slider轮播图效果

    JavaScript实现带有子菜单和控件的slider轮播图效果

    本文通过实例代码给大家介绍了基于js实现带有子菜单和控件的slider轮播图效果,本文附有图片和示例代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-11-11
  • Sourcemap源代码映射详细介绍

    Sourcemap源代码映射详细介绍

    这篇文章主要为大家介绍了Sourcemap源代码映射介绍及示例详解解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-04-04
  • 基于复选框demo(分享)

    基于复选框demo(分享)

    下面小编就为大家带来一篇基于复选框demo(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • es6函数name属性功能与用法实例分析

    es6函数name属性功能与用法实例分析

    这篇文章主要介绍了es6函数name属性,结合实例形式分析了es6函数name属性基本原理、功能、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 一文带你快速理解JavaScript中call()函数的使用

    一文带你快速理解JavaScript中call()函数的使用

    这篇文章主要为大家详细介绍了JavaScript中call()函数的使用的相关知识,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下
    2023-03-03

最新评论