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 の使用法の比較

推薦する

HTML における DOM 要素のスクロールバースクロール制御の詳細な説明

dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...

IE8はマルチ互換モードを使用してWebページを正常に表示します

IE8には複数の互換モードがあります。 IE プラットフォームの設計者である Chris Wilso...

MySQLクエリ条件におけるonとwhereの配置の違いの分析

導入今日SQLを書いているときに、問題が発生しました。要件は、データを照会し、スコアと過去 1 週間...

MySqlサブクエリINの実装と最適化

目次IN が遅いのはなぜですか? INとEXISTSのどちらが速いでしょうか?効率を向上させるにはど...

JavaScript の知識: コンストラクタも関数である

目次1. コンストラクタの定義と呼び出し2. 新しいキーワードの目的3. コンストラクタの問題: メ...

Linuxはsttyを使用して端末の回線設定を表示および変更します。

Sttty は、Linux で端末設定を変更および印刷するための一般的なコマンドです。 1. パラ...

画像カルーセルを実装するためのネイティブJS 小さな広告プラグインを実装するためのJS

最近、ネイティブ JS を使用して、さらにいくつかの小さな機能を実装したいと思っています。現在、ブロ...

Docker を使用した SQL Server の実行の実装

現在、.net Core はクロスプラットフォームであり、誰もが Linux と Docker を使...

jsを使用してカルーセル効果を実現する

今日は、参考までに、jsを使用してカルーセルマップの効果を実現する方法についてお話ししましょう。具体...

Ubuntu 18.04 サーバーのパスワードを忘れたり改ざんされた場合にパスワードをリセットする方法

最近、サーバー上のアカウントが2つハッキングされ、パスワードが改ざんされました。幸い、まだ使えるアカ...

Alibaba Cloud CentOS 7 に yum を使用して MySQL をインストールする正しい方法 (推奨)

yum クイックインストール mysql yumリポジトリを追加する rpm -Uvh http:...

MySQL マスタースレーブレプリケーションと読み取り書き込み分離の詳細な説明

記事マインドマップマスター/スレーブ レプリケーションと読み取り/書き込み分離を使用する理由は何です...

MySQL 関数インデックス最適化ソリューション

MySQL を使用する場合、多くの開発者は一部の列に対して関数計算を実行することが多く、その結果、イ...

mysql5.7.21.zip インストールチュートリアル

mysql5.7.21 zipの詳細なインストール手順は次のとおりです。 1. 解凍して指定されたデ...

Linux Samba サーバーの超詳細なインストールと構成 (問題解決付き)

目次Samba サーバーの紹介Samba サーバー コンポーネントSamba サーバー関連の設定ファ...