最新文章专题视频专题问答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
当前位置: 首页 - 科技 - 知识百科 - 正文

JS+HTML5 canvas绘制验证码示例

来源:动视网 责编:小采 时间:2020-11-27 22:03:03
文档

JS+HTML5 canvas绘制验证码示例

JS+HTML5 canvas绘制验证码示例:本文实例讲述了JS+HTML5 canvas绘制验证码。分享给大家供大家参考,具体如下: css样式: <style> body{ text-align: center; } canvas{ background:#ddd; } </style> HTML部分: body中添加标签canvas:
推荐度:
导读JS+HTML5 canvas绘制验证码示例:本文实例讲述了JS+HTML5 canvas绘制验证码。分享给大家供大家参考,具体如下: css样式: <style> body{ text-align: center; } canvas{ background:#ddd; } </style> HTML部分: body中添加标签canvas:


本文实例讲述了JS+HTML5 canvas绘制验证码。分享给大家供大家参考,具体如下:

css样式:

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

HTML部分:

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胡歌01234567哈哼哈哈";
 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();
 }

感兴趣的朋友可以使用在线HTML/CSS/JavaScript前端代码调试运行工具:http://tools.jb51.net/code/WebCodeRun,测试上述代码运行效果。

或者使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun,测试如下完整示例代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>www.gxlcms.com canvas绘制验证码</title>
<style>
body{
 text-align: center;
}
canvas{
 background:#ddd;
}
</style>
</head>
<body>
<canvas id="c3"></canvas>
<script>
//创建两个变量保存验证码的宽度和高度
 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胡歌01234567哈哼哈哈";
 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();
 }
</script>
</body>
</html>

运行结果如下:

更多关于JavaScript相关内容还可查看本站专题:《JavaScript+HTML5特效与技巧汇总》、《JavaScript图形绘制技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

文档

JS+HTML5 canvas绘制验证码示例

JS+HTML5 canvas绘制验证码示例:本文实例讲述了JS+HTML5 canvas绘制验证码。分享给大家供大家参考,具体如下: css样式: <style> body{ text-align: center; } canvas{ background:#ddd; } </style> HTML部分: body中添加标签canvas:
推荐度:
标签: 验证码 js html5
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top