驗證碼咱們前端也能實現!

2021-10-06 07:15:11 字數 1713 閱讀 2921

直接上**:

<

!doctype html>

"utf-8"

>

"viewport" content=

"width=device-width, initial-scale=1.0"

>

<

/title>

* a

.box

.box #mycanvas

.btn

<

/style>

<

/head>

="box"

>

"mycanvas" width=

"100" height=

"40" title=

"看不清,更換驗證碼"

>

<

/canvas>

輸入驗證碼:"text" id=

"input"

>

<

/p>

="btn"

>提交<

/button>

<

/div>

<

/body>

class

verification})

this

.init()

}// 初始化驗證碼功能

init()

// 檢測驗證碼是否符合

check()

else

this

.input.value =

''this

.init()

}// 獲取0-9和a-z所有的字元

getchararr()

for(

let i =

65; i <

123; i++)}

return chararr

}// 清空畫布

clear()

// 畫驗證碼

drawtext()

}// 畫干擾線

drawline()

}// 畫干擾點

drawdot()

}// 獲取隨機顏色

getrandomcolor()

,$,$

)` }

}// 例項化驗證碼功能

newverification()

<

/script>

<

/html>

這裡說一下我遇到的難點:

1.字的旋**

我們先使用translate(x,y)方法把畫布的中心移動到我們字元的位置,然後使用rotate(deg)方法來旋轉畫布,這樣我們在(0,0)這個位置上畫第乙個字元就是傾斜的。我們畫完第乙個字元之後,要把畫布的旋轉的角度和中心的移動回去,不然畫第二個位置就會很奇怪。然後就故技重施就可以了。

2.let angle = math.random() * - 0.5

我使用小數的形式來寫角度,因為pi是等於3.14嘛,就180°是3.14。我這樣寫是容易從-0.5到0.5之間獲取隨機數。

3.小細節

我們每一次重新整理驗證碼的時候,記得把code和畫布清空。然後在驗證碼檢測是否正確的時候,我們全部換成小寫比較即可。

前端驗證碼

該方法複製他人的,原博位址為 效果圖總體思路 使用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...

驗證碼實現

1.gd庫 2.建立影象步驟 1 建立畫布 就是在記憶體中開闢一塊臨時區域,用於儲存圖影象資訊 2 繪製影象 使用各種函式設定影象顏色,背景,填充畫筆,繪製圖形等 3 輸出圖形 以某種格式儲存到伺服器或者輸出到瀏覽器顯示給使用者。注意 直接輸出之前一定要用header 告訴瀏覽器以影象格式來處理該輸...