0

我正在从 JSON 加载数据。当我尝试滚动或拖动任何对象时,无法弄清楚为什么画布上会显示不需要的线条。

此问题仅在从 JSON 加载时发生。 代码笔链接

codepen 中提供了示例数据

canvas.loadFromJSON(JsonData, canvas.renderAll.bind(canvas));
canvas.renderAll()

代码链接 [屏幕截图2

4

2 回答 2

0

从 json 加载数据后,您必须更改画布大小。您已将 100 像素添加到画布大小,但 json 数据中的视口大小较小,这会导致渲染中不会更新的“死区”区域。

function initJsonData(JsonData){
  var size = Math.max(JsonData.width,JsonData.height) + 100;
  canvas.loadFromJSON(JsonData, canvas.renderAll.bind(canvas));
  canvas.setWidth(size);
  canvas.setHeight(size);   
  canvas.renderAll()
}   
于 2021-02-23T14:00:39.997 回答
0
function initJsonData(JsonData){
  var size = Math.max(JsonData.width,JsonData.height) + 100;
  var tempJsonData = JsonData
  delete tempJsonData .height
  delete tempJsonData .width
  canvas.loadFromJSON(tempJsonData , canvas.renderAll.bind(canvas));
  canvas.renderAll()
}  

宽度和高度键造成了问题。这解决了问题

于 2021-03-02T12:37:41.587 回答