【发布时间】:2017-10-01 06:58:16
【问题描述】:
我试图对齐组内的一个对象。当我将第一个对象向左、居中或向右对齐时,它是成功的,然后我尝试了第二个对象,第一个对象自行移动!
请看下图(GIF): Fabric JS Object Alignment
我使用 HTML5 Canvas、fabric JS 和 jQuery 进行开发。
这里是小提琴:https://jsfiddle.net/mt0ccqq2/
代码如下:
$(document).ready(function() {
var canvas = new fabric.Canvas("canvas", { preserveObjectStacking: true });
// create rectangle
var rect = new fabric.Rect({
left: 50,
top: 50,
width: 300,
height: 100,
fill: '#ff0000'
});
// create circle
var text = new fabric.Text("Align Me next", {
left: 190,
top: 320,
fontSize: 20
});
// create text
var text2 = new fabric.Text("Align me first", {
left: 100,
top: 200,
fontSize: 20
});
canvas.add(rect, text, text2);
canvas.renderAll();
// GROUP ON SELECTION
canvas.on("selection:created", function(e) {
var activeObj = canvas.getActiveGroup();
if(activeObj.type === "group") {
console.log("Group created");
var groupWidth = e.target.getWidth();
var groupHeight = e.target.getHeight();
e.target.forEachObject(function(obj) {
var itemWidth = obj.getBoundingRect().width;
var itemHeight = obj.getBoundingRect().height;
// ================================
// OBJECT ALIGNMENT: " H-LEFT "
// ================================
$('#objAlignLeft').click(function() {
obj.set({
left: -(groupWidth / 2),
originX: 'left'
});
obj.setCoords();
canvas.renderAll();
});
// ================================
// OBJECT ALIGNMENT: " H-CENTER "
// ================================
$('#objAlignCenter').click(function() {
obj.set({
left: (0 - itemWidth/2),
originX: 'left'
});
obj.setCoords();
canvas.renderAll();
});
// ================================
// OBJECT ALIGNMENT: " H-RIGHT "
// ================================
$('#objAlignRight').click(function() {
obj.set({
left: (groupWidth/2 - itemWidth/2),
originX: 'center'
});
obj.setCoords();
canvas.renderAll();
});
});
}
}); // END OF " SELECTION:CREATED "
});
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
它没有移动我试过了,我对齐下一个文本向前移动第一个文本没有移动检查这里jsfiddle.net/Venkatachalam_Perisetla/mt0ccqq2/1
-
当您尝试第二次对齐时,它仍在移动另一个对象。
-
你可以检查我的 jsfiddle 链接,否则请解释一下你的确切要求。
-
是的,我已经检查了你的 jsfiddle,但我的小提琴还是一样。请在i.stack.imgur.com/p2Jjl.gif 此处查看屏幕截图 (GIF) 以了解问题..