Я хочу использовать команду отмены и повтора на моем маленьком веб-сайте, я использую fabric.js, кто-нибудь есть идеи, как это сделать, следуя моему коду. & кнопку повтора я пытаюсь отменить & переделывать объект холста Это JS скрипка ссылкаКоманда отмены и повтора в холсте с использованием fabric.js
$(document).ready(function(){
var canvas = new fabric.Canvas('c');
var colorSet="red";
$("#svg3").click(function(){
fabric.loadSVGFromURL('http://upload.wikimedia.org/wikipedia/en/c/cd/-Islandshreyfingin.svg', function (objects, options) {
var shape = fabric.util.groupSVGElements(objects, options);
shape.set({
left: canvas.width/2,
top: canvas.height/2,
scaleY: canvas.height/shape.width,
scaleX: canvas.width/shape.width
});
if (shape.isSameColor && shape.isSameColor() || !shape.paths) {
shape.setFill(colorSet);
} else if (shape.paths) {
for (var i = 0; i < shape.paths.length; i++) {
shape.paths[i].setFill(colorSet);
}
}
canvas.add(shape);
canvas.renderAll();
});
});
$("#undo").click(function(){
yourJSONString = JSON.stringify(canvas);
});
$("#redo").click(function(){
canvas.clear();
//alert(yourJSONString);
canvas.loadFromJSON(yourJSONString);
canvas.renderAll();
// alert(svgobj);
});
});
используйте эти [ссылки] (http://stackoverflow.com/questions/15516218/how-to-handle-undo-redo-event-in-javascript), [link] (http://jsfiddle.net/ jfriend00/6qyS6 /) Я уверен, что они вам полезны. – John
См. Также http://stackoverflow.com/questions/6386743/implementing-undo-in-a-web-app. –
См. [Этот вопрос] (http://stackoverflow.com/questions/25357895/using-stateproperties-and-hasstatechanged-to-implement-undo-redo-in-fabric-js) для рабочего, но неполированного подхода. – fzzylogic