返回顶部
首页 > 资讯 > 前端开发 > JavaScript >jquery使用canvas标签绘制验证码
  • 225
分享到

jquery使用canvas标签绘制验证码

2024-04-02 19:04:59 225人浏览 薄情痞子
摘要

<canvas> 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 api 展现给客户端 javascript 以使脚本能够把想绘制的东西都绘制到一块画布

<canvas> 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 api 展现给客户端 javascript 以使脚本能够把想绘制的东西都绘制到一块画布上。

代码如下

CSS:


input{
            width: 200px;
            height: 32px;
            border: 1px solid #000;
            box-sizing: border-box ;
        }
        #c1{
             vertical-align: middle;
             box-sizing: border-box;
             cursor: pointer;
        }
        #btn{
            display: block;
            margin-top: 10px;
            height: 32px;
            font-size: 16px;
        }

html:


<div class="code">
        <input type="text" value="" id="inputValue" placeholder="请输入验证码(不区分大小写)">
    <canvas id="c1" width="100" height="30"style='border:1px solid black'></canvas>
    <button id="btn">提交</button>    
   
</div>

JavaScript:


$(function(){
            //存放随机的验证码
            var showNum=[]
            draw(showNum)
            $('#c1').on('click',function(){
                draw(showNum)
            })
            $('#btn').on('click',function(){
                var s = $('#inputValue').val().toLowerCase()
                var s1 = showNum.join("")
                if(s==s1){
                    alert('提交成功')
                }else{
                    alert('验证码错误')
                    draw(showNum)
                }
            })
 
            //封装一个随机验证码绘制画布的函数
            function draw(showNum){
                //获取canvas
                var canvas=  $('#c1')
                var ctx=canvas[0].getContext('2d')
 
                //获取画布的宽度和高度
                var canvas_width=canvas.width()
                var canvas_height=canvas.height()
 
                //清空之前绘制的内容
                //0,0 清空的起始坐标
                //矩形的宽度和高度
                ctx.clearRect(0,0,canvas_width,canvas_height)
 
                //开始绘制
                var scode='a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,0,1,2,3,4,5,6,7,8,9'
                console.log("123");
                var arrCode=scode.split(',')
                console.log(arrCode);
                var arrLength =arrCode.length
                for(var i=0;i<4;i++){
                    var index=Math.floor(Math.random()*arrCode.length)
                    //随机一个字符
                    var txt = arrCode[index]
                    showNum[i]=txt.toLowerCase()
 
                    //开始控制字符的绘制位置
                    var x=10+20*i//每一个验证码绘制的起始点的x坐标
                    var y=20+Math.random()*8//起始点y坐标
                    
                    ctx.font='bold 20px 微软雅黑' 
 
                    //开始旋转字符
                    var deg = Math.random()-0.5
                    //canvas想实现绘制内容具有倾斜效果,必须先平移
                    //为了把旋转点移动到绘制内容的地方
                    ctx.translate(x,y)
                    ctx.rotate(deg)
                    //设置绘制的颜色随机的颜色
                    ctx.fillStyle=randomColor()
                    ctx.fillText(txt,0,0)
                    //把canvas复原
                    ctx.rotate(-deg)
                    ctx.translate(-x,-y)
                    // ctx.stroke()
                }
                for(var i=0;i<=30;i++){
                    if(i<5){
                        //绘制线
                        ctx.strokeStyle=randomColor()
                        ctx.beginPath()
                        ctx.moveTo(Math.random()*canvas_width,Math.random()*canvas_height)
                        ctx.lineTo(Math.random()*canvas_width,Math.random()*canvas_height)
                        ctx.stroke()
                    }
                    //绘制点
                    ctx.strokeStyle=randomColor()
                    ctx.beginPath()
                    x=Math.random()*canvas_width
                    y=Math.random()*canvas_height
                    ctx.moveTo(x,y)
                    ctx.lineTo(x+1,y+1)
                    ctx.stroke()
                }
 
 
            }
            function randomColor(){
                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})`
            }
        })

能够实现这个效果

如果单击canvas标签会更换一张图片

输入之后如果正确会弹出"输入正确"的提示框

错误会提示"输入错误"并且点击确定后会更换一张验证码框

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: jquery使用canvas标签绘制验证码

本文链接: https://lsjlt.com/news/155821.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • jquery使用canvas标签绘制验证码
    <canvas> 元素是为了客户端矢量图形而设计的。它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布...
    99+
    2024-04-02
  • jquery canvas绘制图片验证码实例
    本文实例为大家分享了jquery canvas绘制图片验证码的具体代码,供大家参考,具体内容如下 CSS .identify-code{ position: absolu...
    99+
    2024-04-02
  • JavaScript使用canvas绘制坐标和线
    本文实例为大家分享了JavaScript使用canvas绘制坐标和线的具体代码,供大家参考,具体内容如下 具体代码如下: <!DOCTYPE html> <ht...
    99+
    2024-04-02
  • 如何使用canvas显示验证码
    这篇文章主要介绍了如何使用canvas显示验证码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近做了一个小需求,就是点击删除按钮,弹出提示弹框让你输入验证码确认删除。那么怎...
    99+
    2023-06-09
  • Android绘制验证码的实例代码
    在前面仿华为加载动画、仿网易音乐听歌识曲-麦克风动画中,我们通过绘图的基础知识完成了简单的绘制。在本例中,我们将绘制常见的验证码。一、效果图二、知识点与思路分析通过上面的效果图观察,我们可以看到里面有绘制的随机线条,随机绘制的验证码。绘制线...
    99+
    2023-05-31
    android 验证码 roi
  • 如何使用canvas及js生成验证码
    这篇文章将为大家详细讲解有关如何使用canvas及js生成验证码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在很多时候都需要用到验证码,前端验证码需要知道Html5中的...
    99+
    2024-04-02
  • 如何使用canvas绘制中国银行标志
    这篇文章主要介绍了如何使用canvas绘制中国银行标志,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   <!DOCTYPE htm...
    99+
    2024-04-02
  • vue使用canvas绘制圆环
    本文实例为大家分享了vue使用canvas绘制圆环的具体代码,供大家参考,具体内容如下 很多时候,会有绘制圆环的要求,比如渐变,圆环等等 所以现在封装了一个方法,可以直接绘制 绘制样...
    99+
    2024-04-02
  • 如何使用canvas绘制圆
    如何使用canvas绘制圆?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。arc语法:arc(x, y, radius, startAngle, endAngle, anti...
    99+
    2023-06-09
  • HTML5中怎么使用Canvas标签
    这篇文章主要介绍“HTML5中怎么使用Canvas标签”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5中怎么使用Canvas标签”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • 使用canvas怎么绘制线段
    这篇文章给大家介绍使用canvas怎么绘制线段,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。基础知识canvas 的基础知识不算多,主要掌握如何绘制线段,图形,图片,文本等。canvas可以在浏览器中绘制,也可以借助 ...
    99+
    2023-06-09
  • 怎么使用Canvas绘制圆形
    这篇文章主要介绍“怎么使用Canvas绘制圆形”,在日常操作中,相信很多人在怎么使用Canvas绘制圆形问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Canvas绘制圆形”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-03
  • 如何在HTML5中使用Canvas标签
    本篇文章为大家展示了如何在HTML5中使用Canvas标签,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML 5 <canvas> 标签定义和用法<canvas> 标签定...
    99+
    2023-06-09
  • html如何使用canvas绘制文本
    这篇文章主要为大家展示了“html如何使用canvas绘制文本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html如何使用canvas绘制文本”这篇文章吧。 ...
    99+
    2024-04-02
  • vue怎么使用canvas绘制圆环
    这篇文章主要介绍“vue怎么使用canvas绘制圆环”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么使用canvas绘制圆环”文章能帮助大家解决问题。效果图:// html<...
    99+
    2023-06-29
  • HTML标签的艺术:用代码绘制网页的蓝图
    HTML标签是网页的核心,它们决定了网页的结构和内容。HTML标签有很多种,每种标签都有其独特的作用。例如,标签定义了网页的头部,标签定义了网页的主体,标签定义了网页的段落,标签定义了网页的链接。 HTML标签可以嵌套使用,形成复杂的结构...
    99+
    2024-02-09
    HTML标签, 网页设计, 前端开发, 网页布局, 网页元素
  • 使用canvas怎么实现一个图形验证码功能
    本篇文章给大家分享的是有关使用canvas怎么实现一个图形验证码功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。<!DOCTYPE html><h...
    99+
    2023-06-09
  • jQuery实现发送验证码控制按钮禁用功能
    需求效果:点击发送验证码之后,按钮禁用,5秒之后取消禁用。 效果图如下: 点击发送之后禁用按钮 5秒之后取消禁用,重新发送 代码如下: <!DOCTYPE html&...
    99+
    2024-04-02
  • HTML5 Canvas标签中怎么使用收录
    这篇文章给大家分享的是有关HTML5 Canvas标签中怎么使用收录的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   一、基本概念   什么是Canvas   是一个新的...
    99+
    2024-04-02
  • 怎么在JavaScript中利用canvas绘制坐标和线
    怎么在JavaScript中利用canvas绘制坐标和线?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。javascript是一种什么语言javascript是一...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作