主頁 > 知識庫 > html5 利用canvas手寫簽名并保存的實(shí)現(xiàn)方法

html5 利用canvas手寫簽名并保存的實(shí)現(xiàn)方法

熱門標(biāo)簽:中紳電銷智能機(jī)器人 鄭州電銷外呼系統(tǒng)違法嗎 鶴壁手機(jī)自動外呼系統(tǒng)怎么安裝 跟電銷機(jī)器人做同事 農(nóng)村住宅地圖標(biāo)注 ai電銷機(jī)器人連接網(wǎng)關(guān) 濟(jì)南辦理400電話 威海營銷外呼系統(tǒng)招商 漳州人工外呼系統(tǒng)排名

最近公司在做一個簽名的功能,主要用到了canvas畫線的功能結(jié)合移動端touch事件

js部分是這樣的:

window.onload = function() {
    new lineCanvas({
        el: document.getElementById("canvas"),//繪制canvas的父級div
        clearEl: document.getElementById("clearCanvas"),//清除按鈕
        saveEl: document.getElementById("saveCanvas"),//保存按鈕
        //      linewidth:1,//線條粗細(xì),選填
        //      color:"black",//線條顏色,選填
        //      background:"#ffffff"//線條背景,選填
    });
};
function lineCanvas(obj) {
    this.linewidth = 1;
    this.color = "#000000";
    this.background = "#ffffff";
    for (var i in obj) {
        this[i] = obj[i];
    };
    this.canvas = document.createElement("canvas");
    this.el.appendChild(this.canvas);
    this.cxt = this.canvas.getContext("2d");
    this.canvas.width = this.el.clientWidth;
    this.canvas.height = this.el.clientHeight;
    this.cxt.fillStyle = this.background;
    this.cxt.fillRect(0, 0, this.canvas.width, this.canvas.width);
    this.cxt.strokeStyle = this.color;
    this.cxt.lineWidth = this.linewidth;
    this.cxt.lineCap = "round";
    //開始繪制
    this.canvas.addEventListener("touchstart", function(e) {
        this.cxt.beginPath();
        this.cxt.moveTo(e.changedTouches[0].pageX, e.changedTouches[0].pageY);
    }.bind(this), false);
    //繪制中
    this.canvas.addEventListener("touchmove", function(e) {
        this.cxt.lineTo(e.changedTouches[0].pageX, e.changedTouches[0].pageY);
        this.cxt.stroke();
    }.bind(this), false);
    //結(jié)束繪制
    this.canvas.addEventListener("touchend", function() {
        this.cxt.closePath();
    }.bind(this), false);
    //清除畫布
    this.clearEl.addEventListener("click", function() {
        this.cxt.clearRect(0, 0, this.canvas.width, this.canvas.height);
    }.bind(this), false);
    //保存圖片,直接轉(zhuǎn)base64
    this.saveEl.addEventListener("click", function() {
        var imgBase64 = this.canvas.toDataURL();
        console.log(imgBase64);
    }.bind(this), false);
};

這是效果圖:

附上html和css

<div id="canvas">
    <p id="clearCanvas">清除</p>
    <p id="saveCanvas">保存</p>
</div>

html,body{
    width: 100%;
    height: 100%;
}
#canvas{
    width: 100%;
    height: 100%;
    position: relative;
}
#canvas canvas{
    display: block;
}
#clearCanvas{
    width: 50%;
    height: 40px;
    line-height: 40px;
    text-align: center;
    position: absolute;
    bottom: 0;
    left: 0;
    border: 1px solid #DEDEDE;
    z-index: 1;
}
#saveCanvas{
    width: 50%;
    height: 40px;
    line-height: 40px;
    text-align: center;
    position: absolute;
    bottom: 0;
    right: 0;
    border: 1px solid #DEDEDE;
    z-index: 1;
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:萍鄉(xiāng) 甘南 惠州 文山 紅河 蘇州 營口 咸陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5 利用canvas手寫簽名并保存的實(shí)現(xiàn)方法》,本文關(guān)鍵詞  html5,利用,canvas,手寫,簽名,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5 利用canvas手寫簽名并保存的實(shí)現(xiàn)方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5 利用canvas手寫簽名并保存的實(shí)現(xiàn)方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章