Javascript 撤消/重做发送转发&;使用fabric.js在画布中实现向后功能
我正在使用fabric.js创建定制的鞋子设计。我想在其中添加撤销和重做功能&我从中成功地做到了这一点 我使用下面的代码来推动画布状态Javascript 撤消/重做发送转发&;使用fabric.js在画布中实现向后功能,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,我正在使用fabric.js创建定制的鞋子设计。我想在其中添加撤销和重做功能&我从中成功地做到了这一点 我使用下面的代码来推动画布状态 function changeLayer(direction) { var activeObject = canvas.getActiveObject(); if (activeObject) { if (direction == 'f
function changeLayer(direction) {
var activeObject = canvas.getActiveObject();
if (activeObject) {
if (direction == 'fore')
console.log(canvas.bringForward(activeObject));
else
console.log(canvas.sendBackwards(activeObject));
}
pushstate();
}
function pushstate() {
if (replayFlag === false) { // i.e. user modified something..
var itemProps = [];
for (var i in selectedObject) {
itemProps.push({
"itemNum": selectedObject[i].itemNum,
"left": selectedObject[i].left,
"top": selectedObject[i].top,
"scaleX": selectedObject[i].scaleX,
"scaleY": selectedObject[i].scaleY,
"angle": selectedObject[i].angle,
"flipX": selectedObject[i].flipX,
"flipY": selectedObject[i].flipY,
"fill": selectedObject[i].fill,
"fontSize": selectedObject[i].fontSize,
"fontFamily": selectedObject[i].fontFamily,
"textBackgroundColor": selectedObject[i].textBackgroundColor,
"fontWeight": selectedObject[i].fontWeight,
"fontStyle": selectedObject[i].fontStyle,
"textDecoration": selectedObject[i].textDecoration
});
}
// get current object properties
onObjectSelected();
undoHist.push({
"action": "modify",
"itemProps": itemProps
});
redoHist = [];
}
}
当我向前或向后移动元素时,撤消/重做功能不能正常工作 我很感谢您添加了代码,但请只发布相关部分。这是一个相当大的块调试…抱歉,这是我第一次对堆栈溢出!!从下一次开始,我会记住这一点。谢谢你again@JitendraPawar:您可以使用您的帖子来减小HTML的大小。这将帮助那些试图帮助你的人;目前有太多的HTML需要处理。我按照你的建议更新了这个问题,谢谢!!!您可以从我在问题中提供的fiddle链接获得撤销/重做代码