• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Html5生成验证码的示例代码

    利用Html5的canvas标签生成画布,在画布上利用随机生成的数字画上验证码,背景为随机生成的颜色和杂乱的直线与点点。

    进阶:利用表单插件属性绑定验证码数据(json)可以在发送时候或者异步通信进行后台数据获取与检查。

    代码块

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>验证码</title>
    <style type="text/css">
        #canvas{
            cursor:pointer;
        }
    </style>
    </head>
    <body>
        <canvas id="canvas" width="150px" height="50px"></canvas>
    <script>
            //生成随机数
        function randomNum(min,max){
            return Math.floor(Math.random()*(max-min)+min);
        }
            //生成随机颜色RGB分量
        function randomColor(min,max){
            var _r = randomNum(min,max);
            var _g = randomNum(min,max);
            var _b = randomNum(min,max);
            return "rgb("+_r+","+_g+","+_b+")";
        }
        //先阻止画布默认点击发生的行为再执行drawPic()方法
        document.getElementById("canvas").onclick = function(e){
            e.preventDefault();
            drawPic();
        };
        function drawPic(){
            //获取到元素canvas
            var $canvas = document.getElementById("canvas");
            var _str = "0123456789";//设置随机数库
            var _picTxt = "";//随机数
            var _num = 4;//4个随机数字
            var _width = $canvas.width;
            var _height = $canvas.height;
            var ctx = $canvas.getContext("2d");//获取 context 对象
            ctx.textBaseline = "bottom";//文字上下对齐方式--底部对齐
            ctx.fillStyle = randomColor(180,240);//填充画布颜色
            ctx.fillRect(0,0,_width,_height);//填充矩形--画画
            for(var i=0; i<_num; i++){
                var x = (_width-10)/_num*i+10;
                var y = randomNum(_height/2,_height);
                var deg = randomNum(-45,45);
                var txt = _str[randomNum(0,_str.length)];
                _picTxt += txt;//获取一个随机数
                ctx.fillStyle = randomColor(10,100);//填充随机颜色
                ctx.font = randomNum(16,40)+"px SimHei";//设置随机数大小,字体为SimHei
                ctx.translate(x,y);//将当前xy坐标作为原始坐标
                ctx.rotate(deg*Math.PI/180);//旋转随机角度
                ctx.fillText(txt, 0,0);//绘制填色的文本
                ctx.rotate(-deg*Math.PI/180);
                ctx.translate(-x,-y);
            }
            for(var i=0; i<_num; i++){
                //定义笔触颜色
                ctx.strokeStyle = randomColor(90,180);
                ctx.beginPath();
                //随机划线--4条路径
                ctx.moveTo(randomNum(0,_width), randomNum(0,_height));
                ctx.lineTo(randomNum(0,_width), randomNum(0,_height));
                ctx.stroke();
            }
            for(var i=0; i<_num*10; i++){
                ctx.fillStyle = randomColor(0,255);
                ctx.beginPath();
                //随机画原,填充颜色
                ctx.arc(randomNum(0,_width),randomNum(0,_height), 1, 0, 2*Math.PI);
                ctx.fill();
            }
            return _picTxt;//返回随机数字符串
        }
        drawPic();
    </script>
    </body>
    </html>

    到此这篇关于Html5生成验证码的示例代码的文章就介绍到这了,更多相关Html5生成验证码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

    上一篇:html5中sharedWorker实现多页面通信的示例代码
    下一篇:canvas绘制折线路径动画实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Html5生成验证码的示例代码 Html5,生成,验证,码,的,示例,