Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 撤消/重做发送转发&;使用fabric.js在画布中实现向后功能_Javascript_Jquery_Html_Canvas - Fatal编程技术网

Javascript 撤消/重做发送转发&;使用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

我正在使用fabric.js创建定制的鞋子设计。我想在其中添加撤销和重做功能&我从中成功地做到了这一点

我使用下面的代码来推动画布状态

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链接获得撤销/重做代码