作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 http://fabricjs.com/customization/ 检查 fabric js 示例时我可以看到 this.__canvases.push(canvas); 被调用,我只是想不通为什么调用它以及如果不调用它会怎样。
var canvas = new fabric.Canvas('c2');
canvas.add(new fabric.Circle({ radius: 30, fill: '#f55', top: 100, left: 100 }));
canvas.selection = false;
this.__canvases.push(canvas);
最佳答案
如果您查看示例页面的 HTML,您会在第 95-98 行找到以下代码
<script>
this.__canvases = [ ];
fabric.Object.prototype.originX = fabric.Object.prototype.originY = 'center';
</script>
这会生成一个空数组,当您使用 this.__canvases.push(canvas);
时,通过将 canvas 对象附加到数组的末尾来填充该数组(参见 Array.prototype.push() )
此数组随后由以下代码使用(位于第 455-468 行)
(function() {
fabric.util.addListener(fabric.window, 'load', function() {
var canvas = this.__canvas || this.canvas,
canvases = this.__canvases || this.canvases;
canvas && canvas.calcOffset && canvas.calcOffset();
if (canvases && canvases.length) {
for (var i = 0, len = canvases.length; i < len; i++) {
canvases[i].calcOffset();
}
}
});
})();
此代码只是计算在示例页面上显示 Canvas 元素的位置。
所以回答你的问题,它只是用在示例页面上,帮助显示示例页面。您的代码中不需要它。在我看来,它不应该包含在每个示例的代码显示中。
关于javascript - this.__canvases.push(canvas) 的含义;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774737/
在 http://fabricjs.com/customization/ 检查 fabric js 示例时我可以看到 this.__canvases.push(canvas); 被调用,我只是想不通为
我是一名优秀的程序员,十分优秀!