以前に、ブラウザで手書きサインが可能なJQueryプライグインの「JSignature」の基本的な使い方をご紹介しました。
前回書いた記事はこちらを参照してください。
JSignatureのメソッド、オプションについて
JSignatureのメソッドはこちら。
メソッド名 | 構文 | 説明 |
clear | .jSignature(“clear”) | canvasを空にする。.jSignature(“reset”)でも空にできる。 |
getData | .jSignature(“getData”, “base30”) | canvasに描かれた内容をbase64エンコードされたデータ文字列に変換する。 |
importData | jSignature(“importData”,dataurl) | getDataメソッドで取得したdataurlなどをcanvasに描画する。 |
使用できるオプションはこちら。
オプション名 | 説明 | デフォルト値 |
width | canvasのwidthを設定する。数字のみ。 | 250 |
height | canvasのheightを設定する。数字のみ。 | 150 |
color | 線の色を設定する。 | #000 |
background-color | canvasの背景色を設定する。 | #fff |
lineWidth | 線の太さを設定する。 | 1 |
cssclass | canvasにclass属性を設定する。 ※「cssClass」みたいに大文字を含めると機能しないので注意。 | None |
実際に組み込んでみた
オプションの実装
とりあえず、オプションを全部一般に突っ込んでみました。基本的に説明は不要だと思います。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jSignature/2.1.3/jSignature.min.js"></script>
<script>
$(document).ready(function() {
$("#canvas").jSignature({
width:600,
height:300,
color:"#f22",
"background-color":"#222",
lineWidth: 10,
cssclass:"demo-class",
});
});
</script>
</head>
<body>
<div id="canvas"></div>
</body>
</html>
こんな感じになります。
「width」と「height」は描画領域の幅と高さを指定できます。
「color」は線の色、「background-color」は描画領域の背景色を指定できます。
※「background-color」は半角ハイフンが入っている都合上、クォーテーションで囲む必要があります。
「lineWidth」は線の太さを指定できます。
JSignatureはdivタグを指定することで、最終的にはcanvasタグが生成されるのですが、cssclassはそのcanvasタグのclass属性を追加することができます。
「cssclass」は全て小文字にしなくてはいけない点に注意が必要です。(「cssClass」というように大文字が含まれているとダメです。)
メソッドの実装
続いてメソッドを実装してみます。といっても、「clear」「getData」は前回の記事で実装しているので、今回は「importData」を使ってみたいと思います。
前回の記事はこちら。
https://yamauuki.com/ブラウザで手書きサインが可能なjqueryプライグイン/
※前回は「clear」ではなくて「reset」を使っていますが、どちらでもクリアできるみたいです。
「ImportData」の実装
「importData」は既にある他の画像をcanvas内に取り込むことができます。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jSignature/2.1.3/jSignature.min.js"></script>
<script>
$(document).ready(function() {
$("#canvas").jSignature({
width:600,
height:400,
color:"#f22",
"background-color":"#222",
lineWidth: 10,
cssclass:"demo-class",
});
// ファイルが選択されたときのイベント
$("#import").change(function(){
var fileReader = new FileReader();
fileReader.addEventListener("load", function () {
// 選択されたファイルを表示
$("#canvas").jSignature("importData", fileReader.result);
}, false);
var file = $('#import').prop("files")[0];
fileReader.readAsDataURL(file)
});
});
</script>
</head>
<body>
<div id="canvas"></div>
<input type="file" id="import" />
</body>
</html>
このコードでは、ファイル選択をしたときにcanvasに画像を表示するようにしています。
canvasに表示した後は、画像の上にサインをすることも可能です。
下記はデモになります。
コメント