jQueryはキャンバスタグを使用して検証コードを描画します

jQueryはキャンバスタグを使用して検証コードを描画します

<canvas> 要素は、クライアント側のベクター グラフィックス用に設計されています。独自の動作はありませんが、クライアント側の JavaScript に描画 API を公開し、スクリプトがキャンバス上に必要なものを描画できるようにします。

コードは次のとおりです

css:

入力{
            幅: 200ピクセル;
            高さ: 32px;
            境界線: 1px実線 #000;
            ボックスのサイズ: 境界線ボックス;
        }
        #c1{
             垂直位置合わせ: 中央;
             ボックスのサイズ: 境界線ボックス;
             カーソル: ポインタ;
        }
        #ボタン{
            表示: ブロック;
            上マージン: 10px;
            高さ: 32px;
            フォントサイズ: 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:

$(関数(){
            //ランダムな検証コードを保存する var showNum=[]
            描画(表示数)
            $('#c1').on('クリック',function(){
                描画(表示数)
            })
            $('#btn').on('クリック',function(){
                var s = $('#inputValue').val().toLowerCase()
                var s1 = showNum.join("")
                s==s1の場合{
                    alert('送信に成功しました')
                }それ以外{
                    アラート('認証コードエラー')
                    描画(表示数)
                }
            })
 
            //キャンバスにランダムな検証コードを描画する関数をカプセル化します。function draw(showNum){
                //キャンバスを取得
                var キャンバス = $('#c1')
                var ctx = キャンバス[0].getContext('2d')
 
                //キャンバスの幅と高さを取得します var canvas_width = canvas.width()
                var キャンバスの高さ = キャンバスの高さ()
 
                // 以前に描画した内容をクリアします//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'
                コンソールログ("123");
                var arrCode = scode.split(',')
                コンソールにログ出力します。
                var arrLength = arrCode.length
                (var i=0;i<4;i++){
                    var インデックス = 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 Microsoft YaHei' 
 
                    //文字の回転を開始します var deg = Math.random()-0.5
                    //Canvas は描画コンテンツの傾斜効果を実現したいので、まず平行移動する必要があります //回転ポイントをコンテンツが描画される場所に移動するには ctx.translate(x,y)
                    ctx.rotate(度)
                    //描画色をランダムな色に設定する ctx.fillStyle=randomColor()
                    ctx.fillText(txt,0,0)
                    //キャンバスを復元する ctx.rotate(-deg)
                    ctx.translate(-x,-y)
                    // ctx.stroke()
                }
                (var i=0;i<=30;i++){
                    もし(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.ストローク()
                    }
                    //点を描く ctx.strokeStyle=randomColor()
                    ctx.beginPath()
                    x=Math.random()*キャンバス幅
                    y=Math.random()*canvas_height
                    ctx.moveTo(x,y)
                    ctx.lineTo(x+1,y+1)
                    ctx.ストローク()
                }
 
 
            }
            関数 randomColor(){
                var r = Math.floor(Math.random()*256)
                var g = Math.floor(Math.random()*256)
                var b = Math.floor(Math.random()*256)
                `rgb(${r},${g},${b})` を返す
            }
        })

この効果を得るために

キャンバスタグをクリックすると、画像が置き換えられます

入力が正しい場合は、「入力が正しい」というプロンプト ボックスがポップアップ表示されます。

エラーがある場合は、「入力エラー」というメッセージが表示され、[OK]をクリックすると確認コードボックスが表示されます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JQueryはシンプルな検証コードプロンプトソリューションを実装します
  • jQueryは携帯電話で認証コードを送信するためのカウントダウンコードを実装します
  • jQueryは検証コードの送信と60秒のカウントダウン機能を実装します
  • 確認コードを取得するためにクリックしてから 60 秒以内に再取得を防止する jQuery プラグイン
  • 静的 HTML 検証コード検証を実装する jQuery プラグイン
  • jQuery をクリックして検証コードボタンとカウントダウン機能を取得する
  • jQueryは検証コード機能を実装します
  • jQueryはシンプルな検証コード機能を実装します
  • jQuery は SMS 認証コードを取得するためのフォームを実装します
  • jQuery は携帯電話で認証コードを送信するカウントダウン効果のコード共有を実装します

<<:  HTMLタグを閉じるのを忘れないでください

>>:  MySQL における EXISTS と IN の使用法の比較

推薦する

権限の問題によりMySQLの設定ファイルmy.cnfを起動できない問題の解決方法

この記事では、権限の問題により MySQL 構成ファイル my.cnf を起動できない場合の関連する...

削除、切り捨て、ドロップの違いと選択方法

序文先週、同僚が私に尋ねました。「兄さん、MySQL にバグを見つけました。午後にディスクをクリーン...

あるテーブルのデータの列を別のテーブルの列にコピーするMySQLメソッド

mysql 1 つのテーブル列を別のテーブルにコピーする場合によっては、フィールドから別の新しいフィ...

解決策 - BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 権限が不十分です

1) jdkファイルが保存されているフォルダパスを入力します私はここにいますusr/local/jd...

絵文字と問題解決のためのMySQL/Javaサーバーサポートの詳細な説明

この記事では、絵文字用の MySQL Java サーバーのサポートと問題解決方法について説明します。...

グループ化されたクエリでのGROUP BYの使用とSQL実行順序の説明

SQL では、GROUP BY は SELECT の結果のデータをグループ化するために使用されます。...

Div はフラッシュを覆います。フラッシュ透過方式により、フラッシュ上に DIV レイヤーを配置できます。

2つのタイプがあります: (異なるブラウザ) 1. IEブラウザで利用可能コードをコピーコードは次の...

ノードイベントループとメッセージキューの分析

目次非同期とは何ですか?なぜ非同期性が必要なのでしょうか?非同期IOとは何ですか?イベントループとは...

Linux サーバー上の hosts ファイル構成の詳細な説明

Linux サーバーのホスト ファイルの構成hosts ファイルは、Linux システム内の IP ...

MySQLのunion allとunionの違いを簡単に理解する

Union は、重複行を除外し、デフォルトのソートを実行する、データに対する結合操作です。Union...

Windows で MySQL のルート パスワードを忘れた場合にリセットする方法

私のマシン環境: Windows 2008 R2 MySQL 5.6 Baidu で「Windows...

JavaScript offsetParent のケーススタディ

1. offsetParentの定義: offsetParentは子要素に最も近い位置に配置された親...

RedisとMySQLの違いを簡単に説明してください

MySQL はディスクに保存される永続的なストレージであり、取得には一定の IO が伴うことはご存じ...

MySQL で重複レコードを見つけて削除する方法

みなさんこんにちは。私は技術の話ばかりして髪を切らない先生のトニーです。何らかの歴史的な理由や誤操作...

MySQLデッドロック問題の詳細な分析

序文私たちのビジネスがまだ初期段階にあり、同時実行の度合いが比較的低い場合、数年間はデッドロックの問...