Html5生成验证码
来源:互联网 发布:美工设计招聘 编辑:程序博客网 时间:2024/06/03 05:04
Html5生成验证码
利用Html5的canvas标签生成画布,在画布上利用随机生成的数字画上验证码,背景为随机生成的颜色和杂乱的直线与点点。进阶:利用表单插件属性绑定验证码数据(json)可以在发送时候或者异步通信进行后台数据获取与检查。
代码块
<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>验证码</title><style type="text/css"> #canvas{ cursor:pointer; }</style></head><body> <canvas id="canvas" width="150px" height="50px"></canvas><script> //生成随机数 function randomNum(min,max){ return Math.floor(Math.random()*(max-min)+min); } //生成随机颜色RGB分量 function randomColor(min,max){ var _r = randomNum(min,max); var _g = randomNum(min,max); var _b = randomNum(min,max); return "rgb("+_r+","+_g+","+_b+")"; } //先阻止画布默认点击发生的行为再执行drawPic()方法 document.getElementById("canvas").onclick = function(e){ e.preventDefault(); drawPic(); }; function drawPic(){ //获取到元素canvas var $canvas = document.getElementById("canvas"); var _str = "0123456789";//设置随机数库 var _picTxt = "";//随机数 var _num = 4;//4个随机数字 var _width = $canvas.width; var _height = $canvas.height; var ctx = $canvas.getContext("2d");//获取 context 对象 ctx.textBaseline = "bottom";//文字上下对齐方式--底部对齐 ctx.fillStyle = randomColor(180,240);//填充画布颜色 ctx.fillRect(0,0,_width,_height);//填充矩形--画画 for(var i=0; i<_num; i++){ var x = (_width-10)/_num*i+10; var y = randomNum(_height/2,_height); var deg = randomNum(-45,45); var txt = _str[randomNum(0,_str.length)]; _picTxt += txt;//获取一个随机数 ctx.fillStyle = randomColor(10,100);//填充随机颜色 ctx.font = randomNum(16,40)+"px SimHei";//设置随机数大小,字体为SimHei ctx.translate(x,y);//将当前xy坐标作为原始坐标 ctx.rotate(deg*Math.PI/180);//旋转随机角度 ctx.fillText(txt, 0,0);//绘制填色的文本 ctx.rotate(-deg*Math.PI/180); ctx.translate(-x,-y); } for(var i=0; i<_num; i++){ //定义笔触颜色 ctx.strokeStyle = randomColor(90,180); ctx.beginPath(); //随机划线--4条路径 ctx.moveTo(randomNum(0,_width), randomNum(0,_height)); ctx.lineTo(randomNum(0,_width), randomNum(0,_height)); ctx.stroke(); } for(var i=0; i<_num*10; i++){ ctx.fillStyle = randomColor(0,255); ctx.beginPath(); //随机画原,填充颜色 ctx.arc(randomNum(0,_width),randomNum(0,_height), 1, 0, 2*Math.PI); ctx.fill(); } return _picTxt;//返回随机数字符串 } drawPic();</script></body></html>
参考:
http://www.qdfuns.com/notes/31796/7045dd1d8b39c7d09ba0817e02e3aad9.html
阅读全文
0 0
- Html5生成验证码
- html5 验证码倒计时
- 验证码生成及验证
- 生成验证码并验证
- 验证码生成与验证
- HTML5迷你游戏作验证码
- C#生成验证码
- C#生成验证码
- 生成验证码
- 验证码生成
- 生成验证码
- JSP生成验证码
- 生成验证码
- 生成验证码
- 数字验证码生成
- 动态生成验证码
- 生成验证码(1)
- 生成验证码(2)
- kylin系列教程(二)创建项目
- UVa524
- onclick="f1()"和onclick="return f1()"的区别是什么?
- java tomcat 设置Docker容器时区
- 把一个数组写到文件中并读出来
- Html5生成验证码
- 2017西安交大ACM小学期数论 [更新学号]
- spring cloud 微服务架构
- 【Opencv】2D射影儿何和变换——柱面投影,图像拼接柱面投影
- R语言学习-问题解决-Error in `[<-.ts`(`*tmp*`,...only replacement of elements is allowed
- 史上最简单的 SpringCloud 教程 | 终章
- css3 字数限制,多出用...代替
- 支持手势缩放的ImageView
- 剑指offer面试题[30]-最小的k个数