全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

在很多时候都需要用到验证码,前端验证码需要知道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  # 绘制验证码  # js生成验证码  # 原生js+canvas实现验证码  # js+h5 canvas实现图片验证码  # js+canvas绘制图形验证码  # JavaScript使用canvas绘制随机验证码  # JS+HTML5 canvas绘制验证码示例  # JavaScript Canvas实现验证码  # js+canvas实现验证码功能  # js+canvas实现滑动拼图验证码功能  # js实现点击获取验证码倒计时效果  # js canvas实现验证码并获取验证码功能  # 验证码  # 随机数  # 您的  # 也有  # 坐标值  # 不支持  # 换个  # 好一个  # 条数  # 就写  # 鼠标点击  # 试试吧  # cursor  # pointer  # gt  # style  # arr  # validate  # split  # str 


相关文章: 高端智能建站公司优选:品牌定制与SEO优化一站式服务  宝塔新建站点报错如何解决?  装修招标网站设计制作流程,装修招标流程?  长沙做网站要多少钱,长沙国安网络怎么样?  如何在万网开始建站?分步指南解析  C++如何使用std::optional?(处理可选值)  如何在IIS管理器中快速创建并配置网站?  定制建站是什么?如何实现个性化需求?  如何高效利用亚马逊云主机搭建企业网站?  建站之星如何助力网站排名飙升?揭秘高效技巧  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何通过FTP服务器快速搭建网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  建站上市公司网站建设方案与SEO优化服务定制指南  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  5种Android数据存储方式汇总  建站为何优先选择香港服务器?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  黑客如何利用漏洞与弱口令入侵网站服务器?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何用美橙互联一键搭建多站合一网站?  建站10G流量真的够用吗?如何应对访问高峰?  如何在服务器上三步完成建站并提升流量?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  如何用5美元大硬盘VPS安全高效搭建个人网站?  内网网站制作软件,内网的网站如何发布到外网?  ,如何利用word制作宣传手册?  淘宝制作网站有哪些,淘宝网官网主页?  建站168自助建站系统:快速模板定制与SEO优化指南  建站之星代理商如何保障技术支持与售后服务?  公司门户网站制作流程,华为官网怎么做?  Swift中switch语句区间和元组模式匹配  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何通过虚拟主机快速完成网站搭建?  如何配置支付宝与微信支付功能?  实例解析angularjs的filter过滤器  教学网站制作软件,学习*后期制作的网站有哪些?  营销式网站制作方案,销售哪个网站招聘效果最好?  c++ stringstream用法详解_c++字符串与数字转换利器  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  建站之星与建站宝盒如何选择最佳方案?  定制建站价位费用解析与套餐推荐全攻略  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  自助网站制作软件,个人如何自助建网站?  如何解决VPS建站LNMP环境配置常见问题?  如何在IIS7上新建站点并设置安全权限?  如何用花生壳三步快速搭建专属网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。