canvas實現的驗證碼效果程式碼例項
驗證碼通常是圖片形式的,canvas恰好就是繪圖的,所以使用canvas實現驗證碼效果也是一種選擇。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <canvas id="canvas" width="150" height="50"></canvas> <script> function randomNum(min, max) { return Math.floor(Math.random() * (max - min) + min); } function randomColor(min, max) { var _r = randomNum(min, max); var _g = randomNum(min, max); var _b = randomNum(min, max); return "rgb(" + _r + "," + _g + "," + _b + ")"; } document.getElementById("canvas").onclick = function(e) { e.preventDefault(); drawPic(); }; function drawPic() { var $canvas = document.getElementById("canvas"); var _str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var _picTxt = ""; var _num = 6; var _width = $canvas.width; var _height = $canvas.height; var ctx = $canvas.getContext("2d"); ctx.textBaseline = "bottom"; ctx.fillStyle = randomColor(180, 240); ctx.fillRect(0, 0, _width, _height); for (var i = 0; i < _num; i++) { var x = (_width - 10) / _num * i + 10; var y = randomNum(_height / 2, _height); var deg = randomNum(-45, 45); var txt = _str[randomNum(0, _str.length)]; _picTxt += txt; ctx.fillStyle = randomColor(10, 100); ctx.font = randomNum(16, 40) + "px SimHei"; ctx.translate(x, y); ctx.rotate(deg * Math.PI / 180); ctx.fillText(txt, 0, 0); ctx.rotate(-deg * Math.PI / 180); ctx.translate(-x, -y); } for (var i = 0; i < _num; i++) { ctx.strokeStyle = randomColor(90, 180); ctx.beginPath(); ctx.moveTo(randomNum(0, _width), randomNum(0, _height)); ctx.lineTo(randomNum(0, _width), randomNum(0, _height)); ctx.stroke(); } for (var i = 0; i < _num * 10; i++) { ctx.fillStyle = randomColor(0, 255); ctx.beginPath(); ctx.arc(randomNum(0, _width), randomNum(0, _height), 1, 0, 2 * Math.PI); ctx.fill(); } return _picTxt; } drawPic(); </script> </body> </html>
相關文章
- 利用canvas實現的驗證碼效果程式碼例項Canvas
- javascript實現的簡單驗證碼效果程式碼例項JavaScript
- canvas實現的鋸齒效果程式碼例項Canvas
- canvas實現的鐘表效果程式碼例項Canvas
- jquery 驗證碼效果程式碼例項jQuery
- javascript實現的驗證碼程式碼例項JavaScript
- canvas實現的雪花飄落效果程式碼例項Canvas
- canvas實現的藍色雨滴效果程式碼例項Canvas
- canvas實現的彈力小球效果程式碼例項Canvas
- canvas實現煙花燃放效果程式碼例項Canvas
- jQuery加法驗證碼效果程式碼例項jQuery
- canvas實現的七巧板效果程式碼例項Canvas
- canvas實現的動態心形效果程式碼例項Canvas
- canvas實現的圓形鐘錶效果程式碼例項Canvas
- canvas實現的簡單畫板效果程式碼例項Canvas
- canvas火焰效果程式碼例項Canvas
- canvas實現的刮刮樂程式碼例項Canvas
- canvas實現的賽貝爾曲線效果程式碼例項Canvas
- canvas實現的小球四壁碰撞效果程式碼例項Canvas
- canvas實現文字線性漸變效果程式碼例項Canvas
- canvas字母雨效果程式碼例項Canvas
- canvas載入效果程式碼例項Canvas
- canvas擺動效果程式碼例項Canvas
- canvas實現的旋轉的太極圖效果程式碼例項Canvas
- canvas實現的美猴王程式碼例項Canvas
- canvas水位進度效果程式碼例項Canvas
- canvas原型鐘錶效果程式碼例項Canvas原型
- canvas氣泡上浮效果程式碼例項Canvas
- canvas田字格效果程式碼例項Canvas
- canvas繪製圓環效果程式碼例項Canvas
- canvas螞蟻線效果程式碼例項Canvas
- javascript實現的生成驗證碼隨機數程式碼例項JavaScript隨機
- canvas實現點選產生放射性效果程式碼例項Canvas
- canvas實現的變幻線程式碼例項Canvas線程
- canvas實現的多邊形程式碼例項Canvas
- canvas實現的千輪眼程式碼例項Canvas
- canvas模擬彈幕效果程式碼例項Canvas
- canvas繪製箭頭效果程式碼例項Canvas