【发布时间】:2014-02-27 22:17:17
【问题描述】:
我正在制作一个移动应用程序,我需要最简单的 javascript 签名板来实现 AngularJS,但我无法在任何地方找到任何资源。
所有插件都使用我拒绝加载的 jquery,因为它是一个移动应用程序,而 jquery 只会使应用程序膨胀。有谁知道我可以使用的教程,或者可以给我基本的指导,我将如何做到这一点,我需要什么元素......我真的很喜欢它!
更新:我刚刚写了一些基本的东西,因为它在这里得到了回答。但它不起作用。任何人都可以识别为什么?我有一个指令,我将其作为元素 () 注入到 html 中。控制台没有返回任何异常。
sig.directive("signatureDirective", function () {
return {
template: '<canvas id="canvas" width="500" height="100" style="border: 1px solid #ccc;"></canvas>',
restrict: 'E',
link: function (scope, element, attrs) {
var canvas = $(element);
var context = canvas.getContext("2d");
var clickX = new Array();
var clickY = new Array();
var clickDrag = new Array();
var paint;
$(element).addEventListener("mousedown", mouseDown, false);
$(element).addEventListener("mousemove", mouseXY, false);
document.body.addEventListener("mouseup", mouseUp, false);
$(element).addEventListener("touchstart", mouseDown, false);
$(element).addEventListener("touchmove", mouseXY, true);
$(element).addEventListener("touchend", mouseUp, false);
document.body.addEventListener("touchcancel", mouseUp, false);
function draw() {
context.clearRect(0, 0, 500, 100);
context.strokeStyle = "#000000";
context.lineJoin = "miter";
context.lineWidth = 2;
for (var i = 0; i < clickX.length; i++) {
context.beginPath();
if (clickDrag[i] && i) {
context.moveTo(clickX[i - 1], clickY[i - 1]);
} else {
context.moveTo(clickX[i] - 1, clickY[i]);
}
context.lineTo(clickX[i], clickY[i]);
context.stroke();
context.closePath();
}
}
function mouseDown(e) {
var mouseX = e.pageX - this.offsetLeft;
var mouseY = e.pageY - this.offsetTop;
paint = true;
addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);
draw();
}
function mouseUp() {
paint = false;
}
function mouseXY(e) {
if (paint) {
addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);
draw();
}
}
}
};
});
【问题讨论】:
-
您可能不想为此使用 jQuery 插件,但您可以阅读 jQuery 插件的代码以了解其工作原理...
-
这个问题有点笼统。在画布上阅读。您期待什么样的浏览器支持?
-
nnnnn:好主意,我会这样做,但我在这里问这样,因为如果有人教你一些东西或者你自己阅读代码,通常需要更少的时间。第二个 Rikudo:我希望它可以在 cordova、chrome、firefox 上运行。我不关心 IE。
标签: javascript angularjs