前端以canvas實現驗證碼詳解

2021-08-30 15:12:08 字數 1412 閱讀 9557

隨機凌亂字元生成隨機的背景色調隨機出現的遮擋線與點

要實現此功能我們可以使用css3canvas元素,通過js我們可以

非常簡單的實現前端生成驗證碼。

我們先在html中建立乙個canvas元素用於存放驗證碼

注意其中的width和height屬性是沒有px的

而後根據需求,隨機是很重要的,為了方便使用

我們建立乙個能夠隨機生成乙個範圍內數字的函式

function random(min, max)
再然後為了字型和背景與遮擋線的多彩,我們可以建立乙個

隨機色彩的函式,同時考慮進製轉換。我們選擇樣式用rgb書寫

function color(min, max) 

var check=""; //儲存結果

最後我們就可以開始繪製驗證碼了,我們從凌亂字元生成開始做起

function drawverification()
完成效果:這裡實現了背景色

verification.fillstyle = color(180, 240);     //選擇隨機背景色

verification.fillrect(0, 0, width, height); //填充區域

最後就是遮擋線與點了

for (var i = 0; i <5; i++)  //更改i可以更改生成線條數

for (var i = 0; i < 50; i++)

}

完成效果:最後還有一些注意事項: canvas的繪畫是逐層遮擋的,也就是說後進行的步驟能夠遮擋前進行的步驟

所以背景色調必須要在其他繪圖之前進行才行

而如果背景色最後繪製會完全遮擋其他東西,如下圖:

實際上,這樣的遮擋也有一些好處,比如我們可以不需要清空了

當下一層使用背景色的時候自然會完全覆蓋掉前面的所有東西,而後不需要清理其他的文字,遮擋線,點都能清晰的呈現在上面了

以上就是全部了,效果實際上與以往的驗證碼一樣

只是分析並增加了比較詳細的注釋而已****

canvas繪製驗證碼

好的 都是一行一行敲出來的,為了明天加油!一 在html中建立乙個canvas並設定乙個 id 和寬高 id c3 width 120 height 30 二 利用css給canvas設定乙個背靜屬性,在網頁中顯示出來。body canvas 三 最重要的,利用js建立矩形 1.首先通過js原生do...

前端驗證碼

該方法複製他人的,原博位址為 效果圖總體思路 使用canvas元素畫背景圖,用js產生隨機驗證碼,背景顏色以及干擾圖線,干擾點,然後渲染到頁面上 實現如下 html部分 12 js部分 var options 生產驗證碼 function producecode options options.tx...

vue前端驗證碼

最近做專案接觸vue,前端生成驗證碼。原理是這樣的 1.建立乙個子元件 identify.vue 負責生成隨機數,然後用canvas繪製 2.建立父元件 codetest.vue 呼叫子元件,接收驗證碼,重新整理驗證碼 配置路由 router index.js import vue from vue...