モバイル署名機能を実装するJavaScript

モバイル署名機能を実装するJavaScript

この記事では、モバイル署名機能を実装するためのJavaScriptの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

1. HTML部分

<div class="mui-content-padded">
 <div class="mui-inline"><font style="font-family: '微软雅黑';font-size: 1.2rem;">受領者の署名:</font></div>
</div>
<div class="mui-content-canvasDiv" style="overflow: hidden;">
 <キャンバス id="myCanvas" 幅="660" 高さ="360" スタイル="border:1px solid #f2f2f2;"></キャンバス>
 <div class="saveimgs" id="saveImgDiv"></div>
</div>

myCanvas は署名された div であり、 saveImgDiv は保存後にエコーされる div です。

2. ページの初期化、div署名関数の追加

このメソッドは、InitThis() を呼び出します。
var マウスが押された = false;
var lastX、lastY;
var ctx = document.getElementById('myCanvas').getContext("2d");
var c = document.getElementById("myCanvas");
var 選択された1、選択された2;
関数InitThis() {
 // タッチスクリーン c.addEventListener('touchstart', function(event) {
  コンソール.log(1)
  イベントターゲットタッチの長さが1の場合
   event.preventDefault(); // ブラウザのデフォルトイベントを防止します。重要 mousePressed = true;
   描画(event.touches[0].pageX - this.offsetLeft、event.touches[0].pageY - this.offsetTop、false);
  }
 }、 間違い);
 c.addEventListener('touchmove', 関数(イベント) {
  コンソール.log(2)
  イベントターゲットタッチの長さが1の場合
   event.preventDefault(); // ブラウザのデフォルトイベントを防止します。重要 if(mousePressed) { 
    描画(event.touches[0].pageX - this.offsetLeft、event.touches[0].pageY - this.offsetTop、true);
 
   }
  }
 }、 間違い);
 c.addEventListener('touchend', 関数(イベント) {
  コンソール.log(3)
  イベントターゲットタッチの長さが1の場合
   event.preventDefault(); // 手書き中に画面がドラッグされるのを防ぐためにブラウザのデフォルト イベントを防止します。重要: mousePressed = false;
  }
 }、 間違い);
 // マウス c.onmousedown = function(event) {
  マウスが押された = true;
  描画(event.pageX - this.offsetLeft、event.pageY - this.offsetTop、false);
 };
 c.onmousemove = 関数(イベント) {
  マウスが押された場合
   描画(event.pageX - this.offsetLeft、event.pageY - this.offsetTop、true);
  }
 };
 c.onmouseup = 関数(イベント) {
  マウスが押された = false;
 };
}
 
関数Draw(x, y, isDown) {
 if(isDown) {
  ctx.beginPath();
  ctx.strokeStyle = 選択された2;
  ctx.lineWidth = 選択された1;
  ctx.lineJoin = "丸め";
  ctx.moveTo(最後のX、最後のY);
  ctx.lineTo(x, y);
  ctx.closePath();
  ctx.stroke();
 }
 最後のX = x;
 最後のY = y;
}

3. 画像のパスを取得してsaveImgDivに格納し、署名エコーロジックを実行する

var ファイル = "http://10.1.31.173:8097/upload/" + iv[0].zjqm + "?v=" + 新しい Date().getTime();
 
$("#saveImgDiv").append('<img src="'+ ファイル + '" style="background:white" width="660" height="360">');

4. ユーザー署名を保存します。これは、送信成功時の保存のコールバックに配置できます。

var saveimgs = document.getElementsByClassName("saveimgs")[0];
 
//署名画像を保存します。var image = c.toDataURL("image/png");
var ctximg = document.createElement("span");
ctximg.innerHTML = "<img src='" + image + "' alt='キャンバスから'/>";
(saveimgs.getElementsByTagName('span').length >= 1) の場合 {
 var span_old = saveimgs.getElementsByTagName("span")[0];
 saveimgs.replaceChild(ctximg,span_old)
} それ以外 {
 saveimgs.appendChild(ctximg);
}

効果

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

以下もご興味があるかもしれません:
  • JSキャンバスは描画ボードと署名ボードの機能を実現します

<<:  Robots.txtの詳細な紹介

>>:  初心者がHTMLタグを学ぶ(2)

推薦する

MySql の 4 つのトランザクション分離レベルについて簡単に説明します。

分離レベル:隔離はあなたが考えるよりも複雑です。 SQL 標準では 4 つの分離レベルが定義されてお...

mysql-connector-java.jar パッケージのダウンロード プロセスの詳細な説明

mysql-connector-java.jar パッケージのチュートリアルをダウンロードします: ...

MySQL 8.0 のメモリ関連パラメータの概要

理論的には、MySQL によって使用されるメモリ = グローバル共有メモリ + max_connec...

IE6かどうかを判定する最短JS(IEの書き方)

ブラウザが IE のどのバージョンであるかを検出するためによく使用される JavaScript コー...

JavaScriptエラーキャプチャの詳細な説明

目次1. 基本的な使い方とロジック2. 特徴3. エラーオブジェクト4. キャッチアンドスロー戦略の...

ウェブページヘッダーの最適化の提案

ロゴの最適化: 1.ロゴ画像はできるだけ小さくしてください。 2. 一般的には背景として配置されます...

WindowsでのMySQLインストールチュートリアルの詳細な紹介

目次1. ダウンロードする前に理解しておくべき概念2. 必要なバージョンを選択する3. MySQLサ...

MySQL で MHA アーキテクチャのデプロイメントを構築する手順

目次マハ1. MAHアーキテクチャの概要2. 適用可能なシナリオ3. MHAの動作原理4. MHAの...

Linux ファイルとユーザー管理の実践

1. /etc ディレクトリ内の、文字以外の文字で始まり、その後に文字と任意の長さのその他の文字が続...

html の img src="" で js 関数または js 変数を呼び出して、画像パスを動的に指定します。

この問題に関して、オンライン リソースをたくさん見つけました。ここにいくつかの方法を示します。コード...

JS関数の継承について学ぶ記事

目次1. はじめに: 2. プロトタイプチェーン継承: 3. コンストラクタ継承の借用(オブジェクト...

MySQL の同時実行性の問題と解決策の分析

目次1. 背景2. テーブルロックによるクエリの遅延3. オンラインでテーブル構造を変更するとどのよ...

この記事では、MySQLのマスタースレーブ同期の原理を説明します。

目次MySQL マスタースレーブ同期原理の簡単な分析1. マスタースレーブとは何ですか? 2. 主従...

JSはプログレスバーをドラッグして要素の透明度を変更することを実装しています

今日ご紹介したいのは、ネイティブ JS を使用してプログレス バーをドラッグし、要素の透明度を変更す...