【发布时间】:2016-03-12 18:10:44
【问题描述】:
我正在使用 Fabric.js,但遇到的问题类似于下面小提琴中的问题。
http://jsfiddle.net/fabricjs/S9sLu/
var canvas = new fabric.Canvas('c', { selection: false });
var grid = 50;
// create grid
for (var i = 0; i < (600 / grid); i++) {
canvas.add(new fabric.Line([ i * grid, 0, i * grid, 600], { stroke: '#ccc', selectable: true }));
canvas.add(new fabric.Line([ 0, i * grid, 600, i * grid], { stroke: '#ccc', selectable: false }))
}
// add objects
canvas.add(new fabric.Rect({
left: 100,
top: 100,
width: 50,
height: 50,
fill: '#faa',
originX: 'left',
originY: 'top',
centeredRotation: true
}));
canvas.add(new fabric.Circle({
left: 300,
top: 300,
radius: 50,
fill: '#9f9',
originX: 'left',
originY: 'top',
centeredRotation: true
}));
// snap to grid
canvas.on('object:moving', function(options) {
options.target.set({
left: Math.round(options.target.left / grid) * grid,
top: Math.round(options.target.top / grid) * grid
});
});
当我准确地复制和粘贴代码时,我遇到了一个问题,即形状选择器似乎位于形状的右下角(离开形状)。在这个例子中,当我将鼠标悬停在它上面时,我无法移动它。当我从右下角拖动时,我只能移动。
这个小提琴在小提琴上没有同样的问题,但是当我把代码带到我的机器上时,我遇到了同样的问题。
我错过了什么??
谢谢
更新
这似乎是我正在使用的计算机。我能够在另一台机器上安装和运行而没有问题。两者都使用Xampp,firefox。唯一的区别是 Win 10 和 Win 7,但这会导致问题吗??
它们在每台计算机上加载时存在差异。
没有一个 html 看起来像这样......
<div class="canvas-container" style="width: 300px; height: 300px; position: relative; -moz-user-select: none;">
<canvas id="canvas" class="lower-canvas" height="450" width="450" style="position: absolute; width: 300px; height: 300px; left: 0px; top: 0px; -moz-user-select: none;"></canvas>
<canvas class="upper-canvas " style="position: absolute; width: 300px; height: 300px; left: 0px; top: 0px; -moz-user-select: none; cursor: default;" width="300" height="300"></canvas>
</div>
工作看起来像这样
<div class="canvas-container" style="width: 300px; height: 300px; position: relative; -moz-user-select: none;">
<canvas id="canvas" class="lower-canvas" height="300" width="300" style="position: absolute; width: 300px; height: 300px; left: 0px; top: 0px; -moz-user-select: none;"></canvas>
<canvas class="upper-canvas " style="position: absolute; width: 300px; height: 300px; left: 0px; top: 0px; -moz-user-select: none; cursor: default;" width="300" height="300"></canvas>
为什么班级的高度和宽度都是450???
【问题讨论】:
-
我无法在 Mac OSX、Firefox 或 Chrome 上重现此内容。也许这是对损坏的计算机进行干扰的扩展。由于“无法复制”而投票结束。
-
我在不工作的计算机上尝试了许多浏览器,但结果相同。我可以发布屏幕截图吗?关于如何进一步解决问题的任何建议?在所有浏览器上,无论我为 div 尺寸添加什么,它都会扩展较低的画布尺寸。
-
可能与屏幕的 dpi 有关。在 Windows 10 中,您的字体有多大? 100& oe 150%, 125%?
-
这会改变 html 吗?我的等级设置为 150%(这是班级扩大到 300 --> 450.
标签: javascript jquery html css fabricjs