【发布时间】:2017-07-18 03:57:45
【问题描述】:
我使用 zoomtopoint 并缩放到对象。但不适用于背景。 我想放大对象和背景。我怎样才能 ?
示例: 对象大小:100x100 不缩放。 缩放后对象尺寸:100x100
缩放后网格保持不变。
缩放事件
document.addEventListener('wheel', function(event) {
var evt = window.event || event;
var delta = evt.detail? evt.detail*(-120) : evt.wheelDelta;
var curZoom = canvas.getZoom();
var newZoom = curZoom + delta / 4000;
var x = event.offsetX;
var y = event.offsetY;
canvas.zoomToPoint({ x: x, y: y }, newZoom);
if(event != null)event.preventDefault();
return false;
canvas.calcOffset();
}, false);
网格代码:
canvas.setBackgroundColor({source: src, repeat: 'repeat'}, canvas.renderAll.bind(canvas), function () {
canvas.renderAll();
proceed();
});
编辑
#canvas-background { display: inline-block; position: absolute; top: 0; right: 0; }
但我不使用 css。
背景图片
谢谢
对不起,我英语说得不好。
【问题讨论】:
-
如果您指的是 canvas.style.background,那么它不是 canvas 2D API 的一部分,需要 DOM/CSS 转换。不是fabricJS所做的。您需要将背景作为对象添加到织物中,以便将其包含在缩放中
-
我认为您是在谈论将背景图像添加为图像对象。
-
是的。我不知道织物是否会让您将图像设置为可重复的,但 2D API 允许您通过位图设置图案。如果织物允许您创建图案,请使用背景位图创建图案。这样你就可以让它重复。
-
我试试这个代码:
canvas.backgroundColor = new fabric.Pattern({source: image})但没有改变:( -
现在我使用 setBackgroundImage(),但是现在,我不能重复 x-y 轴。
标签: javascript canvas zooming fabricjs