vue 使用 canvas 實(shí)現(xiàn)手寫電子簽名
功能
兼容 PC 和 Mobile; 畫布自適應(yīng)屏幕大小變化(窗口縮放、屏幕旋轉(zhuǎn)時(shí)畫布無(wú)需重置,自動(dòng)校正坐標(biāo)偏移); 自定義畫布尺寸(導(dǎo)出圖尺寸),畫筆粗細(xì)、顏色,畫布背景色; 支持裁剪 (針對(duì)需求:有的簽字需要裁剪掉四周空白)。 導(dǎo)出圖片格式為 base64 ; 示例demo安裝
npm install vue-esign --save
使用
main.js 中引入
import vueEsign from ’vue-esign’Vue.use(vueEsign)
頁(yè)面中使用
必須設(shè)置 ref ,用來(lái)調(diào)用組件的兩個(gè)內(nèi)置方法 reset() 和 generate() 無(wú)需給組件設(shè)置 style 的寬高,如果畫布的 width 屬性值沒超出父元素的樣式寬度,則該組件的樣式寬度就是畫布寬度,超出的話,組件樣式寬度則是父元素的100%; 所以只需設(shè)置好父元素的寬度即可;
<vue-esign ref='esign' : : :isCrop='isCrop' :lineWidth='lineWidth' :lineColor='lineColor' :bgColor.sync='bgColor' /><button @click='handleReset'>清空畫板</button> <button @click='handleGenerate'>生成圖片</button>
data () { return { lineWidth: 6, lineColor: ’#000000’, bgColor: ’’, resultImg: ’’, isCrop: false }},methods: { handleReset () { this.$refs.esign.reset() }, handleGenerate () { this.$refs.esign.generate().then(res => { this.resultImg = res }).catch(err => { alert(err) // 畫布沒有簽字時(shí)會(huì)執(zhí)行這里 ’Not Signned’ }) }}
說明
屬性 類型 默認(rèn)值 說明 width Number 800 畫布寬度,即導(dǎo)出圖片的寬度 height Number 300 畫布高度,即導(dǎo)出圖片的高度 lineWidth 4 Number 畫筆粗細(xì) lineColor String #000000 畫筆顏色 bgColor String 空 畫布背景色,為空時(shí)畫布背景透明, 支持多種格式 ’#ccc’,’#E5A1A1’,’rgb(229, 161, 161)’,’rgba(0,0,0,.6)’,’red’ isCrop Boolean false 是否裁剪,在畫布設(shè)定尺寸基礎(chǔ)上裁掉四周空白部分
兩個(gè)內(nèi)置方法,通過給組件設(shè)置 ref 調(diào)用:
清空畫布
this.$refs.esign.reset()
生成圖片
this.$refs.esign.generate().then(res => { console.log(res) // base64圖片}).catch(err => { alert(err) // 畫布沒有簽字時(shí)會(huì)執(zhí)行這里 ’Not Signned’})
有任何問題請(qǐng)到此提issue
總結(jié)
到此這篇關(guān)于vue 使用 canvas 實(shí)現(xiàn)手寫電子簽名的文章就介紹到這了,更多相關(guān)vue 手寫電子簽名內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Jsp中request的3個(gè)基礎(chǔ)實(shí)踐2. 三個(gè)不常見的 HTML5 實(shí)用新特性簡(jiǎn)介3. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))4. 得到XML文檔大小的方法5. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法6. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera7. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲8. XML解析錯(cuò)誤:未組織好 的解決辦法9. React實(shí)現(xiàn)一個(gè)倒計(jì)時(shí)hook組件實(shí)戰(zhàn)示例10. 解析原生JS getComputedStyle
