佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 用canvas顯示驗證碼的實現(xiàn)

用canvas顯示驗證碼的實現(xiàn)

熱門標簽:檢查注冊表項 網(wǎng)站建設(shè) 美圖手機 使用U盤裝系統(tǒng) 硅谷的囚徒呼叫中心 智能手機 百度競價點擊價格的計算公式 阿里云

最近做了一個小需求,就是點擊刪除按鈕,彈出提示彈框讓你輸入驗證碼確認刪除。

那么怎么顯示從后臺獲取的驗證碼供用戶輸入呢?我在理解需求時還以為是后臺直接把驗證碼發(fā)到用戶的手機上 然后讓其輸入,其實不然,我理解錯了,應(yīng)該用 canvas 把驗證碼畫出來。

理解需求之后我扒著有驗證碼的網(wǎng)址看,開始 canvas 畫圖之旅。

技術(shù)棧: quasar (基于vue的一種框架) / canvas

點擊刪除按鈕,觸發(fā)彈框彈出

彈框為什么會彈出呢? 因為點擊刪除按鈕,觸發(fā) handleAddDialogOpened 事件,使得data里面的 addDialogOpened 由false變成true,彈框就由之前的不顯示變成顯示啦。

如圖代碼是彈框代碼:其中 canvas 標簽上的 ref 是多余的,抱歉吶,忘記刪掉了

 

data 里面定義的數(shù)據(jù):定義 canvas 畫布的寬高

verifyCode_ 綁定用戶輸入input框的驗證碼

 

computed 計算屬性里面 mapState 映射 verifyCode 數(shù)據(jù), mapState 是輔助函數(shù),用于幫助我們簡化生成計算屬性,不懂的可以扒著 vuex 的官網(wǎng)瞅瞅

 

mapActions 也是輔助函數(shù),用于將組件的方法映射為 store.dispatch

getVerifyCode 就是向后臺獲取驗證的請求方法

 

canvasclick 方法用于 當用戶辨認不清驗證碼,或者輸入錯誤重新輸入時,點擊 換一個 即可更新驗證碼(此時要重新從后臺獲取驗證碼) 后臺小哥哥不打烊吶~~~

 

核心代碼: drawPic() 方法就是畫驗證碼的核心方法

1 獲取畫布標簽 使用 getElementById 原生獲取 dom

2 使用 .getContext('2d') 準備畫布 .textBaseline 定義畫布描繪的基線

3 繪制背景

4 繪制驗證碼

5 繪制干擾視覺的線和點

 

drawText() 繪制驗證碼的方法

 

drawLine() 繪制干擾線的方法

 

drawDot() 繪制干擾點的方法

 

定義彈框彈出的方法以及刪除的方法, 回歸需求 ,到此這個需求就完成了 可以和后臺聯(lián)調(diào),沒啥問題就可提交代碼啦

 

總結(jié):

a. 遇到?jīng)]有做過的需求,要去看看別人怎么做的,目前還沒有難到要你自己創(chuàng)新,沒有任何類比的代碼

b. 善于使用debugger調(diào)試代碼,看看自己代碼那里出了問題,有bug不要慌,喝口水,去debugger打斷點深入理解代碼執(zhí)行邏輯,效率解決

c. 作為社畜大軍的一員,要自律, 要輸出 ,要鍛煉,有時間還要看看代碼大全,地鐵上擼擼MDN文檔,扎實js, 期待那個你想成為的你, 共勉

到此這篇關(guān)于用canvas顯示驗證碼的實現(xiàn)的文章就介紹到這了,更多相關(guān)canvas顯示驗證碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標簽:賀州 山南 湘潭 懷化 煙臺 黃山 湖北 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標題《用canvas顯示驗證碼的實現(xiàn)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    广宁县| 左云县| 福泉市| 白朗县| 米易县| 孝昌县| 岢岚县| 南溪县| 香港 | 荆门市| 分宜县| 乡宁县| 五指山市| 奇台县| 朝阳市| 黄山市| 涪陵区| 册亨县| 康马县| 武清区| 武强县| 洛宁县| 四子王旗| 沧州市| 容城县| 湾仔区| 遵义市| 靖安县| 视频| 衡南县| 句容市| 格尔木市| 鹤峰县| 安图县| 仁寿县| 基隆市| 邳州市| 淅川县| 荥经县| 平顶山市| 简阳市|