我正在使用创建一个应用程序fabric.js
,并且遇到了非常奇怪的行为。我正在使用常规fabric.Canvas
(不是fabric.StaticCanvas
)添加图像和文本实例,并且在添加后无法移动或调整这些项目的大小。我只添加了每种类型的几个。基本功能包含在与某个按钮上的单击事件相关的回调中,但核心结构功能看起来像这样(简化,但就结构相关代码而言,几乎所有内容都相同):
<canvas id="myCanvas" height=600 width=800></canvas>
<input id="addStuff" type="button" value="Add!" />
....
var canvas = new fabric.Canvas('myCanvas');
canvas.renderOnAddition = true;
$(function(){
$('#addStuff').on('click', function(e) {
var text = new fabric.Text("Hello, world", {
top : 100,
left : 100,
fontSize : 12,
fontFamily : 'Delicious_500'
});
text.hasControls = false;
canvas.add(text);
fabric.Image.fromURL('./img/pic.png', function(img) {
var imgX = img.set({
top: 200,
left: 100,
});
canvas.add(imgX);
});
canvas.renderAll();
});
});
上面的代码很好地呈现了元素,但它们不能调整大小或移动,并且是静态的。奇怪的是,如果我打开和关闭我的 chrome 开发面板(使用 F12 或 [Ctrl/CMD]+SHIFT+I 两次),画布恢复了功能,一切都恢复了。我也发生了一些服务器端的事情(这只是我正在做的一个模拟示例),但我不知道如何进一步追踪到这种奇怪的行为。我正在使用最新的代码(从 github repo 构建)。想法?