最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實現(xiàn)驗證碼案例

 更新時間:2021年10月29日 16:46:15   作者:Q青N年  
這篇文章主要為大家詳細介紹了js實現(xiàn)驗證碼案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現(xiàn)驗證碼的具體代碼,供大家參考,具體內(nèi)容如下

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: 20px;
            height: 32px;
            font-size: 16px;
 
        }

HTML代碼:

<div class="code">
        <input type="text" value="" id="inputValue" placeholder="請輸入驗證碼(不區(qū)分大小寫)">
        <canvas id="c1" width="100" height="30" style="border:1px solid black"></canvas>
        <br>
        <button id="btn">提交</button>
</div>

js代碼:

使用了部分jQuery的方法,請記得先引入jQuery

$(function(){
            // 存放隨機的驗證碼
            var showNum = []
 
            draw(showNum)
 
            $("#c1").click(function(){
                draw(showNum)
            })
            $("#btn").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()
                //  清空之前繪制的內(nèi)容
                // 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,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,1,2,3,4,5,6,7,8,9,"
                var arrCode = scode.split(",")
                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()//轉(zhuǎn)化為小寫存入驗證碼數(shù)組
                    // 開始控制字符的繪制位置
                    var x = 10 +20*i //每一個驗證碼繪制的起始點x坐標
                    var y = 20 + Math.random()*8// 起始點y坐標
 
                    ctx.font = "bold 20px 微軟雅黑"
                    // 開始旋轉(zhuǎn)字符
                    var deg = Math.random*-0.5
                    // canvas 要實現(xiàn)繪制內(nèi)容具有傾斜的效果,必須先平移,目的是把旋轉(zhuǎn)點移動到繪制內(nèi)容的地方
                    ctx.translate(x,y)
                    ctx.rotate(deg)
                    // 設(shè)置繪制的隨機顏色
                    ctx.fillStyle = randomColor()
                    ctx.fillText(txt,0,0)
 
                    // 把canvas復原
                    ctx.rotate(-deg)
                    ctx.translate(-x,-y)
 
                }
                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()
                    var x = Math.random()*canvas_width
                    var 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},$)`
 
            }
 
        })

隨便寫的案例,有錯誤還請大家多多指教

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JS動態(tài)給對象添加屬性和值的實現(xiàn)方法

    JS動態(tài)給對象添加屬性和值的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狫S動態(tài)給對象添加屬性和值的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • three.js中點對象(Point)和點材質(zhì)(PointsMaterial)的具體使用

    three.js中點對象(Point)和點材質(zhì)(PointsMaterial)的具體使用

    本文主要介紹了three.js中點對象(Point)和點材質(zhì)(PointsMaterial)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 淺析js中substring和substr的方法

    淺析js中substring和substr的方法

    這篇文章主要介紹了js中substring和substr的方法,對substring和substr的方法進行描述和說明,感興趣的小伙伴們可以參考一下
    2015-11-11
  • JavaScript中ES6 Babel正確安裝過程

    JavaScript中ES6 Babel正確安裝過程

    這篇文章主要介紹了JavaScript中ES6 Babel正確安裝過程的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • 關(guān)于AOP在JS中的實現(xiàn)與應(yīng)用詳解

    關(guān)于AOP在JS中的實現(xiàn)與應(yīng)用詳解

    這篇文章主要給大家介紹了關(guān)于AOP在JS中的實現(xiàn)與應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JS具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • uniApp實現(xiàn)熱更新的思路與詳細過程

    uniApp實現(xiàn)熱更新的思路與詳細過程

    經(jīng)常在做app的時候,會有做熱更新的需求,這也是常用的更新app的一種手段,下面這篇文章主要給大家介紹了關(guān)于uniApp實現(xiàn)熱更新的思路與詳細過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • uniapp導航欄組件使用步驟

    uniapp導航欄組件使用步驟

    在uni-app中,可以使用官方提供的uni-navigator組件來實現(xiàn)導航欄的功能,這篇文章主要介紹了uniapp導航欄組件如何使用,需要的朋友可以參考下
    2024-01-01
  • 淺談JS中String()與 .toString()的區(qū)別

    淺談JS中String()與 .toString()的區(qū)別

    下面小編就為大家?guī)硪黄獪\談JS中String()與 .toString()的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • js+html5實現(xiàn)canvas繪制鏤空字體文本的方法

    js+html5實現(xiàn)canvas繪制鏤空字體文本的方法

    這篇文章主要介紹了js+html5實現(xiàn)canvas繪制鏤空字體文本的方法,涉及html5文字效果的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • JavaScript實現(xiàn)body內(nèi)任意節(jié)點的自定義屬性功能示例

    JavaScript實現(xiàn)body內(nèi)任意節(jié)點的自定義屬性功能示例

    這篇文章主要介紹了JavaScript實現(xiàn)body內(nèi)任意節(jié)點的自定義屬性功能,涉及javascript針對DOM節(jié)點的獲取及屬性設(shè)置相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09

最新評論

右玉县| 莎车县| 双辽市| 洛隆县| 枝江市| 德江县| 古浪县| 六枝特区| 乐昌市| 贺州市| 天等县| 中方县| 凭祥市| 开封市| 三明市| 望奎县| 集贤县| 平湖市| 博兴县| 特克斯县| 山西省| 吐鲁番市| 东台市| 山东| 安国市| 馆陶县| 大关县| 荆州市| 泾源县| 勐海县| 彰武县| 淅川县| 伊宁市| 岑溪市| 阿拉善右旗| 庆安县| 宜君县| 炎陵县| 苍溪县| 荥经县| 武山县|