国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

使用canvas及js簡單生成驗證碼方法

2024-05-06 16:36:20
字體:
來源:轉載
供稿:網友

在很多時候都需要用到驗證碼,前端驗證碼需要知道Html5中的canvas知識點。驗證碼生成步驟是

1.生成一張畫布canvas

2.生成隨機數驗證碼 

3.在畫布中生成干擾線 

4.把驗證碼文本填充到畫布中 

5.點擊畫布更換驗證碼

結構與樣式:

<canvas id="mycanvas" width='90' height='40'> 您的瀏覽器不支持canvas,請換個瀏覽器試試~</canvas><style>#mycanvas{ cursor: pointer;}</style>

下面來編寫js代碼:

/*生成4位隨機數*/ function rand(){  var str="abcdefghijklmnopqrstuvwxyz0123456789";  var arr=str.split("");  var validate="";  var ranNum;  for(var i=0;i<4;i++){   ranNum=Math.floor(Math.random()*36); //隨機數在[0,35]之間   validate+=arr[ranNum];  }  return validate; } /*干擾線的隨機x坐標值*/ function lineX(){  var ranLineX=Math.floor(Math.random()*90);  return ranLineX; } /*干擾線的隨機y坐標值*/ function lineY(){  var ranLineY=Math.floor(Math.random()*40);  return ranLineY; } function clickChange(){  var mycanvas=document.getElementById('mycanvas');  var cxt=mycanvas.getContext('2d');  cxt.fillStyle='#000';  cxt.fillRect(0,0,90,40);  /*生成干擾線20條*/  for(var j=0;j<20;j++){   cxt.strokeStyle='#fff';   cxt.beginPath(); //若省略beginPath,則每點擊一次驗證碼會累積干擾線的條數   cxt.moveTo(lineX(),lineY());   cxt.lineTo(lineX(),lineY());   cxt.lineWidth=0.5;   cxt.closePath();   cxt.stroke();  }  cxt.fillStyle='red';  cxt.font='bold 20px Arial';  cxt.fillText(rand(),25,25); //把rand()生成的隨機數文本填充到canvas中   } clickChange(); /*點擊驗證碼更換*/ mycanvas.onclick=function(e){  e.preventDefault(); //阻止鼠標點擊發生默認的行為  clickChange(); };

這樣就寫好一個較普通的驗證碼了,當然也有很多需要優化的地方,比如干擾線的隨機顏色、可以加干擾點以及文本的隨機位置隨機顏色等等。趕緊去試試吧~


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 婺源县| 阜南县| 宁安市| 宝山区| 平顺县| 微山县| 襄城县| 凌源市| 昌平区| 晋宁县| 通渭县| 丹东市| 建始县| 大名县| 韶山市| 张北县| 浏阳市| 成武县| 米林县| 惠东县| 峨眉山市| 轮台县| 台北县| 碌曲县| 白河县| 安远县| 东乌珠穆沁旗| 元阳县| 临汾市| 钟祥市| 玛多县| 邯郸市| 方正县| 绥德县| 汽车| 溧阳市| 嘉兴市| 和政县| 即墨市| 阿鲁科尔沁旗| 衢州市|