canvans 随机验证码

	let show_num = []
    function draw(show_num) {
        let doc = document;
        let canvas = doc.getElementById("canvas");
        let context = canvas.getContext("2d");
        // 屏幕宽度
        let clientWidth = document.documentElement.clientWidth;
        // canvas宽度
        let canvasWidth = Math.floor(canvas.width);
        // let canvasWidth = Math.floor(clientWidth * 100 / 1920);
        // canvas高度
        let canvasHeight = Math.floor(canvas.height);
        // let canvasHeight = Math.floor(clientWidth * 47 / 1920);
        // 设置宽高
        canvas.setAttribute('width', canvasWidth + 'px');
        canvas.setAttribute('height', canvasHeight + 'px');
        // 画布内容
        let sCode = "a,b,c,d,e,f,g,h,i,j,k,m,n,p,q,r,s,t,u,v,w,x,y,z,A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0";
        let aCode = sCode.split(",");
        let aLength = aCode.length; //获取到数组的长度
        // 验证码
        let num = 4
        for (let i = 0; i < num; i++) { //这里的for循环可以控制验证码位数(如果想显示6位数,4改成6即可)
            let j = Math.floor(Math.random() * aLength); //获取到随机的索引值
            // let deg = Math.random() * 30 * Math.PI / 180;//产生0~30之间的随机弧度
            let deg = Math.random() - 0.5; //产生一个随机弧度
            let txt = aCode[j]; //得到随机的一个内容
            this.show_num[i] = txt.toLowerCase();
            // 字体间隙
            let fontInterval = canvasWidth / num;
            // 字体高度
            let fontLineHeight = canvasHeight / 2;
            // 文字在canvas上的x坐标i:为第几个字体* 间隙 + 文字居中(间隙/2) 
            let x = i * fontInterval + (fontInterval / 2); //文字在canvas上的x坐标
            // 文字在canvas上的y坐标
            let y = fontLineHeight;
            // 字体大小
            let textPx = canvasHeight / 2.5;
            context.font = "bold " + textPx + "px" + " 微软雅黑";

            context.translate(x, y);
            context.textBaseline = 'middle';
            context.textAlign = 'center';
            context.rotate(deg);
            context.fillStyle = this.randomColor();
            context.fillText(txt, 0, 0);
            context.rotate(-deg);
            context.translate(-x, -y);
        }
    }

    //得到随机的颜色值
    function randomColor() {
        let r = Math.floor(Math.random() * 256);
        let g = Math.floor(Math.random() * 256);
        let b = Math.floor(Math.random() * 256);
        return "rgb(" + r + "," + g + "," + b + ")";
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PowerApp是一种由微软开发的应用程序开发工具,可用于创建自定义的商务应用程序。Canvas App是PowerApp的一种类型,它允许用户以无代码方式创建个性化的应用程序。 PowerApp Canvas App提供了一个直观的界面,用户可以通过简单地拖放和配置来创建应用程序。用户可以根据自己的需求自定义应用程序的布局,设计和功能。使用PowerApp的预定义控件和功能,用户可以在应用程序中添加表单、图表、画廊、按钮等元素,以及与数据源进行交互。用户还可以通过设置条件和公式来定义应用程序的行为和逻辑。 PowerApp Canvas App支持与多种数据源集成,包括SharePoint、Dynamics 365、Excel和其他外部数据源。这使得用户能够在应用程序中访问和处理各种数据。 使用PowerApp Canvas App,用户可以创建多种类型的应用程序,满足不同业务场景的需求。它可以用于创建报告应用程序、工作流应用程序、调查问卷应用程序等。用户可以通过PowerApp向应用程序添加逻辑和功能,以满足他们的特定需求。 总之,PowerApp Canvas App是一种强大而灵活的应用程序开发工具,它允许用户以无代码的方式创建个性化的商务应用程序。通过简单的拖放和配置,用户可以轻松地构建自己的应用程序,并根据需要添加逻辑和功能。这为用户提供了一种快速、简便和定制化的应用程序开发方式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值