Javascript html5画布圆角文本随sketch.js消失
我对HTML5画布元素有一个问题。我使用sketch.js,这样客户端就可以在网页中绘制图纸。客户的要求之一是,他可以添加带有数字的“邮票”。所以我对JS做了一些修改,使之成为可能。这是可行的,可以添加邮票。但当用户切换回钢笔工具并再次开始绘图时,数字就会显示出来 我使用fillText()添加邮票 请参见此处的演示:Javascript html5画布圆角文本随sketch.js消失,javascript,jquery,html,html5-canvas,Javascript,Jquery,Html,Html5 Canvas,我对HTML5画布元素有一个问题。我使用sketch.js,这样客户端就可以在网页中绘制图纸。客户的要求之一是,他可以添加带有数字的“邮票”。所以我对JS做了一些修改,使之成为可能。这是可行的,可以添加邮票。但当用户切换回钢笔工具并再次开始绘图时,数字就会显示出来 我使用fillText()添加邮票 请参见此处的演示: 希望有人能帮助我sketchJS根据其源代码经常清理和重画画布。例如,用户的每个新绘图操作都将清除并重新绘制画布 您的this.context.fillTextcode临时“借
希望有人能帮助我sketchJS根据其源代码经常清理和重画画布。例如,用户的每个新绘图操作都将清除并重新绘制画布 您的
this.context.fillText
code临时“借用”sketchJS画布,并在画布上绘制文本。当sketchJS内部决定需要清除画布时,文本将消失
sketchJS目前不支持文本,因此如果您希望在不让sketchJS擦除文本的情况下将文本永久放到画布上,则必须修改源以添加fillText功能
或者,一种解决方法可能是在sketchJS画布上添加一个html画布元素并将其重叠(就像sketchJS画布上的html画布“层”)。然后在顶部画布上绘制文本。这样SketchJS就不会删除您想要的文本
注意:必须防止覆盖画布拦截鼠标事件。您可以通过设置指针事件:none代码>在顶部画布上。以下是有关指针事件的链接:
$.sketch.tools.text = {
onEvent: function(e) {
switch (e.type) {
case 'mousedown':
case 'touchstart':
this.context.font="16px Verdana";
this.context.fillText(this.stamp, e.pageX - this.canvas.offset().left, e.pageY - this.canvas.offset().top);
break;
}
return true;
},
draw: function(action) {
return true;
}
};