使用H5新标签canvas制作验证码

本文介绍了一种使用HTML和JavaScript生成验证码图片的方法。通过设置HTML元素包括一个用于显示验证码的canvas标签,利用JavaScript动态生成随机字符串作为验证码,并将其绘制到canvas上。文章详细解释了如何设置canvas属性、生成随机颜色及线条干扰等。

 

html元素:

<div>
<label>验证码:</label><input type="text">
<canvas width="100" height="40" class="canvas" id="canvas">
</canvas>
</div>

JS脚本:

var canvas = document.getElementById('canvas');
var cxt = canvas.getContext('2d');
drawString(randomString());
function randomString(){
var code='';
var source='012345789ascdefgqwrtyuioplkjghmnvczx';

for(var i=0;i<4;i++){
var index=Math.floor(Math.random()*source.length);
code = code+ source.charAt(index);
}
return code;
}

function drawString(code){
sessionStorage.setItem('Code',code);
cxt.clearRect(0,0,canvas.width,canvas.height);
cxt.fillStyle='#ccc';
cxt.font='30px 黑体';
cxt.textBaseline='top';
for(var i=0;i<code.length;i++){
var r=randomNumber(0,255);
var g=randomNumber(0,255);
var b=randomNumber(0,255);
var h=randomNumber(0,canvas.height-30);
cxt.fillStyle='rgb('+ r + ',' + g + ',' + b + ')';
cxt.fillText(code.charAt(i),10 + i*18,h);
}
for(var i=0;i<20;i++){
var x1 = randomNumber(0,canvas.width);
var y1 = randomNumber(0,canvas.height);

var x2 = randomNumber(0,canvas.width);
var y2 = randomNumber(0,canvas.height);

cxt.strokeStyle='#ddd';
cxt.beginPath();
cxt.moveTo(x1,y1);
cxt.lineTo(x2,y2);
cxt.closePath();
cxt.stroke();
}
}
canvas.onclick=function(e){
var code = randomString();

drawString(code);
}
function randomNumber(min,max){
return Math.floor(Math.random()*(max-min+1)+min);
}

 

转载于:https://www.cnblogs.com/skyforever/p/7760465.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值