JavaScript+html はフロントエンドページでランダム QR コード検証を実装します

JavaScript+html はフロントエンドページでランダム QR コード検証を実装します

クールなフロントエンドページのランダムQRコード検証を参考までに共有します。具体的な内容は次のとおりです。

コードに直接

<%@ ページ contentType="text/html;charset=UTF-8" language="java" %>
<html>
<ヘッド>
    <title>タイトル</title>
    <!--jQuery の js を導入する -->
    <script type="text/javascript" src="../jquery/jquery.js"></script>
</head>
<スタイル>
    .入力値 {
        幅: 200ピクセル;
        高さ: 32px;
        境界線: 1px 実線 #ddd;
        ボックスのサイズ: 境界線ボックス;
    }
    #キャンバス {
        垂直位置合わせ: 中央;
        ボックスのサイズ: 境界線ボックス;
        境界線: 1px 実線 #ddd;
        カーソル: ポインタ;
    }
    .btn{
        表示: ブロック;
        上マージン: 20px;
        高さ: 32px;
        幅: 100ピクセル;
        フォントサイズ: 16px;
        色: #fff;
        背景色: #457adb;
        境界線: なし;
        境界線の半径: 50px;
    }
</スタイル>
<本文>
<div class="code">
    <input type="text" value="" placeholder="確認コードを入力してください(大文字と小文字は区別されません)" class="input-val">
    <キャンバスid="キャンバス" 幅="100" 高さ="30"></キャンバス>
    <button class="btn">送信</button>
</div>
</本文>
<スクリプト>
    $(関数(){
        var show_num = [];
        描画(表示番号)

        $("#canvas").on('click',function(){
            描画(表示番号)
        })
        $(".btn").on('クリック',function(){
            var val = $(".input-val").val().toLowerCase();
            var num = show_num.join("");
            if(val==''){
                alert('認証コードを入力してください!');
            }それ以外の場合(val == num){
                alert('送信に成功しました!');
                $(".input-val").val('');
                // 描画(show_num);

            }それ以外{
                alert('認証コードが間違っています! 再入力してください!');
                $(".input-val").val('');
                // 描画(show_num);
            }
        })
    })

    //検証コードのグラフィックを生成してレンダリングする function draw(show_num) {
        var canvas_width=$('#canvas').width();
        var canvas_height=$('#canvas').height();
        var canvas = document.getElementById("canvas"); // キャンバス オブジェクト (俳優) を取得します。 var context = canvas.getContext("2d"); // キャンバス描画環境 (俳優のパフォーマンス ステージ) を取得します。 canvas.width = canvas_width;
        キャンバスの高さ = キャンバスの高さ;
        var 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";
        var aCode = sCode.split(",");
        var aLength = aCode.length; //配列の長さを取得します for (var i = 0; i < 4; i++) { //ここでの for ループは検証コードの桁数を制御できます (6 桁を表示する場合は、4 を 6 に変更するだけです)
            var j = Math.floor(Math.random() * aLength); //ランダムなインデックス値を取得します // var deg = Math.random() * 30 * Math.PI / 180; //0から30の間のランダムなラジアンを生成します var deg = Math.random() - 0.5; //ランダムなラジアンを生成します var txt = aCode[j]; //ランダムなコンテンツを取得します show_num[i] = txt.toLowerCase();
            var x = 10 + i * 20; //キャンバス上のテキストのx座標var y = 20 + Math.random() * 8; //キャンバス上のテキストのy座標context.font = "bold 23px Microsoft YaHei";

            コンテキストを翻訳します(x, y);
            コンテキストを回転します(度);

            context.fillStyle = ランダムカラー();
            コンテキスト.fillText(txt, 0, 0);

            コンテキストを回転します(-deg);
            コンテキストを翻訳します(-x, -y);
        }
        for (var i = 0; i <= 5; i++) { //検証コードに線を表示します context.strokeStyle = randomColor();
            コンテキスト.beginPath();
            コンテキストを移動します。(Math.random() * キャンバスの幅、Math.random() * キャンバスの高さ)
            context.lineTo(Math.random() * キャンバスの幅、Math.random() * キャンバスの高さ);
            コンテキスト.stroke();
        }
        for (var i = 0; i <= 30; i++) { //検証コードに小さなドットを表示します context.strokeStyle = randomColor();
            コンテキスト.beginPath();
            var x = Math.random() * キャンバス幅;
            var y = Math.random() * canvas_height;
            コンテキストを移動します(x, y);
            コンテキスト.lineTo(x + 1, y + 1);
            コンテキスト.stroke();
        }
    }

    //ランダムな色の値を取得する function 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 + ")" を返します。
    }

</スクリプト>
</html>

効果は以下のとおりです

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

以下もご興味があるかもしれません:
  • js QRコードスキャンログインの原理についての簡単な説明
  • js を使用して QR コードを生成するサンプル コード
  • 動的 QR コードを作成するための Three.js サンプル コード
  • QRコードを生成するときにqrcode.jsが空のdivを定義する必要があるという問題を解決する
  • WeChatのQRコードスキャン機能をjsで呼び出す実装コード
  • JSはバーコードスキャナでQRコードをスキャンする機能を実現します
  • ネイティブ JavaScript に基づいて画像付きの QR コードを生成する方法
  • JavaScript を使用して QR コードを解析する 3 つの方法

<<:  Mysql データベースの日付と日時型でデフォルト値 0000-00-00 を設定するときに発生するエラー問題の詳細な説明

>>:  MySQL (8 および 5.7) の Docker インストール

推薦する

CSS3 で King of Glory マッチング人員読み込みページを実装する方法

King of Glory をプレイしたことがある人なら、このページの効果をよくご存知でしょう。なぜ...

Docker はクラスター MongoDB 実装手順を構築します

序文会社の業務上のニーズにより、独自の MongoDB サービスを構築する予定です。MongoDB ...

画像にマウスを置いたときにズームイン/ズームアウトするには JS を使用します

マウスが画像上にあるときにズームインおよびズームアウトするには、JS を使用します。具体的なコードは...

IE8は優れたエクスペリエンスを提供します: アクティビティ

今日は IE8 ベータ 1 (以下、IE8 と略します) をチラ見しました。IE8 は素晴らしい体験...

フォームを送信した後、別のファイルに移動する

<br />質問:特定のファイルにジャンプするには、HTML でどのように記述すればよい...

HTML特殊文字の徹底分析

HTML徹底解析(14)特殊文字 ■ よく使われる特殊文字 HTMLタグを知っていれば、特殊文字の使...

TomcatはLog4jを使用してcatalina.outログを出力します。

Tomcat のデフォルトのログは java.util.logging を使用しますが、これにはい...

IDEA で mysql8.0.3 と mybatis-generator を使用する際に発生するバグ

1. プラグインを追加し、pomファイルの下に次の設定を追加します。 <!-- mybatis...

JavaScriptカスタムオブジェクトメソッドの概要

目次1. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...

JavaScript/TypeScript で同時リクエスト制御を実装するためのサンプルコード

シナリオリクエストが 10 件あるが、同時リクエストの最大数は 5 件で、リクエスト結果が必要である...

Dockerコンテナの接続と通信の実装

ポート マッピングは、Docker を別のコンテナーに接続する唯一の方法ではありません。 Docke...

建国記念日が近づいています。JS を使用して、建国記念日風のアバターを生成する小さなツールを実装します。実装プロセスの詳細な説明

目次1. ページレイアウト2. 画像のアップロードと表示3. キャンバスを初期化する4. テンプレー...

Mysql は、デッドロック問題を解決するために kill コマンドを使用します (実行中の特定の SQL ステートメントを強制終了します)。

MySQL を使用して特定のステートメントを実行すると、データ量が多いためにデッドロックが発生し、...

Nginx サーバーが Systemd カスタム サービス プロセス分析を追加

1. nginxを例に挙げるyumコマンドを使用してNginxをインストールしましたSystemd ...

MySQL マスタースレーブレプリケーションの原理と注意点

前面に書かれた最近、Mycat で特別なトピックを書いています。最近、多くの友人が面接に出かけている...