Canvas实现一个带干扰线条的随机数验证码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<canvas width="200" height="100" style="box-shadow:0 0 5px #333333;background-color: #333333;"></canvas>
<script>
var can = document.getElementsByTagName('canvas')[0];
var cat = can.getContext('2d');
var str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
function random(){
return r = Math.round(Math.random()*250);
}
function change() {
var str1 = '';
for (var i = 0; i < 4; i++) {
var num = Math.round(Math.random() * (str.length - 1));
str1 += str[num];
}
return str1
}
can.onclick = function () {
can.height=can.height;
cat.beginPath();
cat.moveTo(random(),random());
for (var i = 0; i<random();i++){
cat.bezierCurveTo(random(),random(),random(),random(),random(),random());
}
cat.font = '50px 楷体';
cat.textAlign = 'center';
cat.fillStyle = 'purple';
cat.fillText(change(),110,60);
cat.closePath();
cat.strokeStyle = '#fff';
cat.stroke();
};
</script>
</body>
</html>