最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何使用canvas和js完成验证码的生成方法介绍

来源:动视网 责编:小采 时间:2020-11-27 20:14:19
文档

如何使用canvas和js完成验证码的生成方法介绍

如何使用canvas和js完成验证码的生成方法介绍: 在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点。验证码生成步骤是:1.生成一张画布canvas2.生成随机数验证码 3.在画布中生成干扰线 4.把验证码文本填充到画布中 5.点击画布更换验证码结构与样式:<canvas id=&qu
推荐度:
导读如何使用canvas和js完成验证码的生成方法介绍: 在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点。验证码生成步骤是:1.生成一张画布canvas2.生成随机数验证码 3.在画布中生成干扰线 4.把验证码文本填充到画布中 5.点击画布更换验证码结构与样式:<canvas id=&qu


在很多时候都需要用到验证码,前端验证码需要知道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();
 };

这样就写好一个较普通的验证码了,当然也有很多需要优化的地方,比如干扰线的随机颜色、可以加干扰点以及文本的随机位置随机颜色等等。赶紧去试试吧~

文档

如何使用canvas和js完成验证码的生成方法介绍

如何使用canvas和js完成验证码的生成方法介绍: 在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点。验证码生成步骤是:1.生成一张画布canvas2.生成随机数验证码 3.在画布中生成干扰线 4.把验证码文本填充到画布中 5.点击画布更换验证码结构与样式:<canvas id=&qu
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top