国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 六盘水市| 尼勒克县| 宾川县| 扬中市| 星子县| 克山县| 调兵山市| 定兴县| 绵竹市| 客服| 新密市| 商南县| 巴楚县| 宁城县| 兴安盟| 会东县| 岳阳市| 吉水县| 楚雄市| 牟定县| 东丰县| 黎平县| 普陀区| 苗栗市| 怀化市| 马关县| 杂多县| 莱州市| 东安县| 丹棱县| 双桥区| 康定县| 万宁市| 从江县| 莱阳市| 寻甸| 额济纳旗| 淮阳县| 留坝县| 九龙城区| 海宁市|