最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年04月02日 17:03:51   作者:heyujun-  
在很多時候都需要用到驗證碼,前端驗證碼需要知道Html5中的canvas知識點。驗證碼生成步驟是:1.生成一張畫布canvas 2.生成隨機數(shù)驗證碼 3.在畫布中生成干擾線 4.把驗證碼文本填充到畫布中 5.點擊畫布更換驗證碼

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

1.生成一張畫布canvas

2.生成隨機數(shù)驗證碼 

3.在畫布中生成干擾線 

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

5.點擊畫布更換驗證碼

結(jié)構(gòu)與樣式:

<canvas id="mycanvas" width='90' height='40'>
 您的瀏覽器不支持canvas,請換個瀏覽器試試~
</canvas>

<style>
#mycanvas{
 cursor: pointer;
}
</style>

下面來編寫js代碼:

/*生成4位隨機數(shù)*/
 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); //隨機數(shù)在[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,則每點擊一次驗證碼會累積干擾線的條數(shù)
   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()生成的隨機數(shù)文本填充到canvas中  
 }
 clickChange();
 /*點擊驗證碼更換*/
 mycanvas.onclick=function(e){
  e.preventDefault(); //阻止鼠標點擊發(fā)生默認的行為
  clickChange();
 };

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

相關(guān)文章

最新評論

合肥市| 万载县| 温泉县| 内江市| 甘孜| 濉溪县| 扶沟县| 靖西县| 黔东| 屏边| 昌宁县| 肃南| 马尔康县| 景泰县| 长海县| 手机| 陆川县| 峡江县| 内黄县| 兰西县| 灵武市| 九寨沟县| 青州市| 阳信县| 澳门| 南召县| 徐州市| 贵南县| 横山县| 二连浩特市| 安阳县| 洛南县| 盘山县| 常宁市| 凤翔县| 龙南县| 彩票| 嵊州市| 左贡县| 金华市| 潢川县|