canvas教程

使用canvas及js简单生成验证码方法

字号+ 作者:H5之家 来源:H5之家 2017-04-08 18:04 我要评论( )

使用canvas及js简单生成验证码方法 作者:heyujun- 字体:[ ] 类型:转载 时间:2017-04-02 在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点。验证码生成步骤是:1.生成一张画布canvas 2.生成随机数验证码 3.在画布中生成干扰线 4.把

使用canvas及js简单生成验证码方法

作者:heyujun- 字体:[ ] 类型:转载 时间:2017-04-02

在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点。验证码生成步骤是:1.生成一张画布canvas 2.生成随机数验证码 3.在画布中生成干扰线 4.把验证码文本填充到画布中 5.点击画布更换验证码

在很多时候都需要用到验证码,前端验证码需要知道Html5中的canvas知识点。验证码生成步骤是:

1.生成一张画布canvas

2.生成随机数验证码 

3.在画布中生成干扰线 

4.把验证码文本填充到画布中 

5.点击画布更换验证码

结构与样式:

<canvas> 您的浏览器不支持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(); };

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


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Canvas画图基础 Beta空间

    Canvas画图基础 Beta空间

    2017-04-09 08:00

  • Android学习笔记:Paint及Canvas的简单应用

    Android学习笔记:Paint及Canvas的简单应用

    2017-04-08 13:06

  • JARLIF Womens Shape Ups Canvas Walking Sneakers

    JARLIF Womens Shape Ups Canvas Walking Sneakers

    2017-04-08 10:02

  • Eclipse图表工具Birt的使用技巧(一)

    Eclipse图表工具Birt的使用技巧(一)

    2017-04-07 11:04

网友点评
h