css样式:
<style>
body{
  text-align: center;
}
canvas{
  background:#ddd;
}
</style>

body中添加标签canvas:
  <canvas id="c3"></canvas>

js:
//创建两个变量保存验证码的宽度和高度
  var w = 120;
  var h = 30;
//将变量值赋值给canvas
  c3.width = w;
  c3.height = h;
//获取画笔
  var ctx = c3.getContext("2d");
//创建两个函数,返回指定范围内的随机数,随机颜色
//随机数
  function rn(min,max){
    var n = Math.random()*(max-min)+min;
    return Math.floor(n);
  }
//随机颜色
  function rc(min,max){
    var r = rn(min,max);
    var g = rn(min,max);
    var b = rn(min,max);
    return `rgb(${r},${g},${b})`;
}
//填充的背景
  ctx.fillStyle=rc(180,230);
  ctx.fillRect(0,0,w,h);
//创建一个随机的文字[字母和数字]4个
  var pool = "ABCDEFGHIJKabced胡歌0123456789哈哼哈哈";
  var str ="";
  for(var i = 0;i<4;i++){
    var index = Math.floor(Math.random()*pool.length);
    str +=pool[index];
}
//console.log(str);
  ctx.font = "30px SimHei";
  ctx.fillStyle = rc(80,180);//文字颜色
  ctx.textBaseline="top";
  ctx.fillText(str,20,0);//在(20,0)处开始填充文字
//绘制6条干扰线
  for(var i = 0;i<6;i++){
    ctx.strokeStyle = rc(0,255);
    ctx.beginPath();
    ctx.moveTo(rn(0,w),rn(0,h));
    ctx.lineTo(rn(0,w),rn(0,h));
    ctx.stroke();
  }
//绘制50个干扰点
  for(var i = 0;i<50;i++){
    ctx.fillStyle = rc(0,255);
    ctx.beginPath();
    ctx.arc(rn(0,w),rn(0,h),1,0,2*Math.PI);
    ctx.fill();
  }

最新文章

  1. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
  2. C#多线程之线程同步篇3
  3. composer 报错:Your requirements could not be resolved to an installable set of packages 解决方法
  4. java对国际化的支持
  5. git分支管理一
  6. CentOS 6 安装 python 2.7 和 mod_wsgi 运行pyocr[tesseract]
  7. BZOJ-2186 沙拉公主的困惑 线性筛(筛筛筛)+线性推逆元
  8. MySQL 数据库设计 笔记与总结(1)需求分析
  9. [转载] tmux的使用tips
  10. as自定义菜单。
  11. const 常量数据,只读
  12. asp.net gridview 绑定图片字段,图片不显示
  13. 《Linear Algebra and Its Applications》-chaper1-线性方程组- 线性变换
  14. Vim C/C++的一键编译
  15. Oracle 跨库 查询 复制表数据 分布式查询
  16. SpringMVC参数校验(针对`@RequestBody`返回`400`)
  17. [转载]MySQL UUID() 函数
  18. 转载:curl 模拟请求
  19. Django学习之三:django-admin 和 项目manage.py程序
  20. MDK编译过程

热门文章

  1. Java数据结构之链表(Linked List)
  2. 旧接口注册LED字符驱动设备(动态映射)
  3. Python 中的作用域?
  4. hadoop编程小技巧(1)---map端聚合
  5. vue路由定义
  6. .net 项目中应用Web Services(vs2012)
  7. LA 3263 That Nice Euler Circuit(欧拉定理)
  8. spring boot generator
  9. onupdate
  10. 029:url标签使用详解