您好,登錄后才能下訂單哦!
這篇文章主要介紹html5生成驗證碼的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
思路介紹:
可以利用html5的canvas標簽先生成畫布,然后在畫布上利用隨機數字生成驗證碼,背景用隨機顏色和雜亂的直線來代替。
高級方法:
利用表單插件屬性綁定驗證碼數據(json)可以在發送時候或者異步通信進行后臺數據獲取與檢查。
具體代碼:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>驗證碼</title> <style type="text/css"> #canvas{ cursor:pointer; } </style> </head> <body> <canvas id="canvas" width="150px" height="50px"></canvas> <script> //生成隨機數 function randomNum(min,max){ return Math.floor(Math.random()*(max-min)+min); } //生成隨機顏色RGB分量 function randomColor(min,max){ var _r = randomNum(min,max); var _g = randomNum(min,max); var _b = randomNum(min,max); return "rgb("+_r+","+_g+","+_b+")"; } //先阻止畫布默認點擊發生的行為再執行drawPic()方法 document.getElementById("canvas").onclick = function(e){ e.preventDefault(); drawPic(); }; function drawPic(){ //獲取到元素canvas var $canvas = document.getElementById("canvas"); var _str = "0123456789";//設置隨機數庫 var _picTxt = "";//隨機數 var _num = 4;//4個隨機數字 var _width = $canvas.width; var _height = $canvas.height; var ctx = $canvas.getContext("2d");//獲取 context 對象 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";//設置隨機數大小,字體為SimHei ctx.translate(x,y);//將當前xy坐標作為原始坐標 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(); //隨機劃線--4條路徑 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>
以上是“html5生成驗證碼的方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。