码迷,mamicode.com
首页 > 其他好文 > 详细

点击切换验证码

时间:2020-05-16 12:53:36      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:document   i++   20px   raw   contex   turn   sla   ret   数组下标   

 

 canvas  点击切换验证码

<canvas id="canvas" width="120px" height="40px"></canvas>
    <script>
        window.onload=function(){
            var canvas=document.getElementById(‘canvas‘);
            var context = canvas.getContext(‘2d‘);
            draw();
            canvas.onclick=function(){
                
                context.clearRect(0,0,120,40);
                draw();
            }
            function draw(){
                context.strokeRect(0,0,120,40)
                var aCode = [‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘] //要随机产生的元素
                for (let i = 0; i < 4; i++) {
                   var x=20+i*20;
                   var y = 20+ 10*Math.random();
                   var index = Math.floor(Math.random()*aCode.length) ;//数组下标
                   var txt = aCode[index];//1 3 5 0
                   context.font = ‘bold 20px‘;
                   context.fillStyle =  getColor();//颜色 随机
                   context.translate(x,y);
                   var deg = 90 * Math.random()*Math.PI/180;
                   context.rotate(deg);
                   context.fillText(txt,0,0);
                   context.rotate(-deg)
                   context.translate(-x,-y) 
                
                }
                //干扰点
                for(var i=0; i<5;i++){
                    context.beginPath(); //
                    var x = Math.random()*120;
                    var y = Math.random()*40;
                    //七点
                    context.moveTo(x,y);
                    //终点
                    context.lineTo(x+1,x+1);
                     context.strokeStyle = getColor() 
                    //绘制
                      context.stroke();
                       context.closePath() 
                }
                //干扰点
                for(var i=0; i<4;i++){
                    context.beginPath(); //
                    var x = Math.random()*120;
                    var y = Math.random()*40;
                    //七点
                    context.moveTo( Math.random()*120, Math.random()*40);
                    //终点
                    context.lineTo(Math.random()*120,Math.random()*40);
                     context.strokeStyle = getColor() 
                    //绘制
                      context.stroke();
                       context.closePath() 
                }
            }
            function getColor(){
                var r = Math.floor(Math.random()*256)
                var g = Math.floor(Math.random()*256)
                var b = Math.floor(Math.random()*256)
                return ‘rgb(‘+r +‘,‘+g +‘,‘+b+‘)‘
            }
        }
    </script>

..

点击切换验证码

标签:document   i++   20px   raw   contex   turn   sla   ret   数组下标   

原文地址:https://www.cnblogs.com/wxyblog/p/12899733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!