创建新的结构画布会更改画布位置
Creating new fabric canvas changes canvas position
我正在尝试学习fabricjs,并在创建新结构时注意到了这一点。画布对象它改变了我的画布的位置。
.HTML
<canvas id="c"></canvas>
CSS
#c {
border: thin red solid;
position: absolute;
top: 50px;
left: 100px;
}
爪哇语
var c = document.getElementById("c");
var ctx = c.getContext("2d");
var img = new Image();
img.src = 'cheese.jpg';
img.onload = function() {
ctx.drawImage(img, 0, 0);
};
// applying the below line shifts the canvas element back to 0,0 position
var cFabric = new fabric.Canvas('c');
希望你们知道我做错了什么。
你没有做错任何事。调用结构。本机画布元素上的画布构造函数将导致本机画布被.canvas-container
div 包装。原始画布获得一个添加的.lower-canvas
类,其left, right
css 样式设置为 0px
。除此之外,在原始画布下方添加一个同级画布,带有一类upper-canvas
。这两个画布就像图层一样,由Fabric的内部运作管理.js(魔术:O)。
如果您需要定位和设置画布样式,我建议您使用包装器div 包装您的 html 画布。
<div id="canvas-wrapper">
<canvas id="c"></canvas>
</div>
接下来将您的 css 规则传输到包装器
#canvas-wrapper {
position: absolute;
top: 50px;
left: 100px;
}
这是我通过更新@Mullainathan的示例小提琴制作的一个简单的小提琴:https://jsfiddle.net/eo7vdg1t/1/
相关文章:
- jquery试图按名称获取按钮位置
- 我可以获得相对于被点击元素的确切点击位置吗
- 谷歌地图固定位置覆盖
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 循环比赛位置算法
- es6 相当于下划线查找位置
- jQuery循环在特定位置暂停
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 如何控制quadraticCurve使用鼠标位置控制位置
- 如何单击并在该位置写入x/y位置
- 返回离用户位置(地理位置)最近的3个位置,并列出这些位置
- HTML5地理位置监视位置正在重新加载完整的地图,而不仅仅是位置
- jQuery根据包含位置偏移位置
- jQuery对话框:在鼠标位置打开位置.在firefox中不起作用
- 定位Div "Fixed"垂直和绝对;水平位置:相对位置;容器Div
- 根据用户的当前位置查询位置数据库
- 使用 JQuery 基于鼠标位置的位置 标记
- 确定鼠标单击位置的位置
- CSS 相对位置/正常位置问题
- 锚位置等于位置减去标头高度