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

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

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

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

js部分是這樣的:

window.onload = function() {
    new lineCanvas({
        el: document.getElementById("canvas"),//繪制canvas的父級(jí)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";
    //開(kāi)始繪制
    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);
    //清除畫(huà)布
    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;
}

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

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

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