js+canvas 实现移动端的签名

效果图

下载地址:链接:https://pan.baidu.com/s/12AM4jxCQDSOHnFawdzqa6A 密码:ws3a

function signatureCanvas(p) {
    var defaults = {
        wrapperEl: document.getElementById("signature_wrapper"),
        clearBtnEl: document.getElementById("clear_canvas"),
        saveBtnEl: document.getElementById("save_canvas"),
        strokeStyle: "#000",
        linewidth: 1,
        background: "#fff",
        border: '0 none'
    };
    for (var property in p) {
        defaults[property] = p[property]
    }
    var params = defaults;
    var wrapperEl = params.wrapperEl;
    var clearBtnEl=params.clearBtnEl;
    var saveBtnel =params.saveBtnEl;
    var canvas = document.createElement('canvas');
    console.log(canvas)
    wrapperEl.appendChild(canvas);
    canvas.style.display = 'block';
    canvas.width = (params.width) ? (params.width) : (wrapperEl.offsetWidth);
    canvas.height = (params.height) ? (params.height) : (wrapperEl.offsetWidth);
    ctxOffsetTop=canvas.offsetTop;
    ctxOffsetLeft=canvas.offsetLeft;
    var ctx = canvas.getContext('2d');
    ctx.strokeStyle = params.strokeStyle;
    ctx.lineWidth = params.linewidth;
    ctx.fillStyle = params.background;
    ctx.fillRect(0, 0, canvas.width, canvas.height);
    canvas.addEventListener('touchstart',function (e) {
        console.log('touchstart')
        ctx.beginPath();
        ctx.moveTo(e.changedTouches[0].pageX-ctxOffsetLeft, e.changedTouches[0].pageY-ctxOffsetTop);
        return false;
    });
    canvas.addEventListener('touchmove',function (e) {
        e.preventDefault()
        console.log('touchmove')
        ctx.lineTo(e.changedTouches[0].pageX-ctxOffsetLeft, e.changedTouches[0].pageY-ctxOffsetTop);
        ctx.stroke();
        return false;
    });
    canvas.addEventListener('touchend',function (e) {
        console.log('touchend')
        ctx.closePath();
        return false;
    });
    clearBtnEl.addEventListener('click',function (e) {
        ctx.clearRect(0, 0, canvas.width, canvas.height)
    });
    saveBtnel.addEventListener('click',function (e) {
        var imgBase64 = canvas.toDataURL()
        console.log(imgBase64)
    })

}

最后保存的图片是base64 var imgBase64 = canvas.toDataURL()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 Canvas接口元素定义 1.1 getContext()方法 为了在canvas上绘制,你必须先得到一个画布...
    Kevin_Junbaozi阅读 1,461评论 1 2
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,889评论 2 32
  • 一、图形的组合方式 globalAlpha是一个介于0和1之间的值(包括0和1),用于指定所有绘制的透明度。默认值...
    空谷悠阅读 1,523评论 0 0
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 4,071评论 3 40
  • 从今年年初开始,和一帮小伙伴们一起学习手绘,从刚开始的简笔画开始,一天天的练习,竟然让我对画画产生了浓厚的兴趣。 ...
    阿布的慢时光阅读 611评论 5 6

友情链接更多精彩内容