站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        html5如何生成驗(yàn)證碼

        html5如何生成驗(yàn)證碼

        思路介紹:

        可以利用html5的canvas標(biāo)簽先生成畫布,然后在畫布上利用隨機(jī)數(shù)字生成驗(yàn)證碼,背景用隨機(jī)顏色和雜亂的直線來(lái)代替。

        (學(xué)習(xí)視頻分享:html5視頻教程)

        高級(jí)方法:

        利用表單插件屬性綁定驗(yàn)證碼數(shù)據(jù)(json)可以在發(fā)送時(shí)候或者異步通信進(jìn)行后臺(tái)數(shù)據(jù)獲取與檢查。

        具體代碼:

        <!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title>驗(yàn)證碼</title> <style type="text/css">     #canvas{         cursor:pointer;     } </style> </head> <body>     <canvas id="canvas" width="150px" height="50px"></canvas> <script>         //生成隨機(jī)數(shù)     function randomNum(min,max){         return Math.floor(Math.random()*(max-min)+min);     }         //生成隨機(jī)顏色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+")";     }     //先阻止畫布默認(rèn)點(diǎn)擊發(fā)生的行為再執(zhí)行drawPic()方法     document.getElementById("canvas").onclick = function(e){         e.preventDefault();         drawPic();     };     function drawPic(){         //獲取到元素canvas         var $canvas = document.getElementById("canvas");         var _str = "0123456789";//設(shè)置隨機(jī)數(shù)庫(kù)         var _picTxt = "";//隨機(jī)數(shù)         var _num = 4;//4個(gè)隨機(jī)數(shù)字         var _width = $canvas.width;         var _height = $canvas.height;         var ctx = $canvas.getContext("2d");//獲取 context 對(duì)象         ctx.textBaseline = "bottom";//文字上下對(duì)齊方式--底部對(duì)齊         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;//獲取一個(gè)隨機(jī)數(shù)             ctx.fillStyle = randomColor(10,100);//填充隨機(jī)顏色             ctx.font = randomNum(16,40)+"px SimHei";//設(shè)置隨機(jī)數(shù)大小,字體為SimHei             ctx.translate(x,y);//將當(dāng)前xy坐標(biāo)作為原始坐標(biāo)             ctx.rotate(deg*Math.PI/180);//旋轉(zhuǎn)隨機(jī)角度             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();             //隨機(jī)劃線--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();             //隨機(jī)畫原,填充顏色             ctx.arc(randomNum(0,_width),randomNum(0,_height), 1, 0, 2*Math.PI);             ctx.fill();         }         return _picTxt;//返回隨機(jī)數(shù)字符串     }     drawPic(); </script> </body> </html>
        登錄后復(fù)制

        相關(guān)推薦:html5教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 92国产精品午夜福利免费| 国产精品 猎奇 另类视频| 91精品国产综合久久四虎久久无码一级 | 91无码人妻精品一区二区三区L| 中文字幕精品一区二区精品| 国产精品亚洲二区在线观看| 国产亚洲综合成人91精品| 久久夜色精品国产欧美乱| 日韩精品无码永久免费网站 | 精品国产_亚洲人成在线高清| 日韩人妻无码精品久久久不卡| 久久亚洲AV永久无码精品| 99久久精品国产一区二区| 国产精品一区在线播放| 国产精品99精品久久免费| 亚洲αv在线精品糸列| 欧美日韩精品一区二区三区不卡 | 永久无码精品三区在线4| 欧美精品亚洲人成在线观看| 国产精品手机在线观看你懂的| 日韩精品一区二区三区四区| 69久久夜色精品国产69| 国产精品无码av在线播放| 日本VA欧美VA欧美VA精品| 亚洲精品国产字幕久久不卡| 亚洲国产综合精品中文字幕| 青春草无码精品视频在线观| 欧美成人精品欧美一级乱黄一区二区精品在线 | 国产成人精品电影在线观看| 日韩精品少妇无码受不了| 伊人 久久 精品| 无码囯产精品一区二区免费| 色国产精品一区在线观看| 久久久久99精品成人片试看| 日韩欧精品无码视频无删节| 人妻少妇精品视中文字幕国语| 久久香蕉超碰97国产精品| 精品久久久噜噜噜久久久| 久久99精品久久久久久hb无码| 久久亚洲精精品中文字幕| 国产午夜精品免费一区二区三区|