javascript - 鼠标拖动时背景移动 Fabric.js

标签 javascript html html5-canvas fabricjs

我使用Fabric.js来呈现平面图,我使用背景图像并使用Fabric.js添加电气设备的图标,当我拖动鼠标时,只有图标在移动,背景壁纸保持静止,那么我怎样才能让背景也移动呢?

var canvas = new fabric.Canvas('c');
canvas.selection = false;

var circle = new fabric.Circle({
    radius: 20,
    fill: 'green',
    left: 100,
    top: 100,
    selectable: false
});

canvas.add(circle);

var panning = false;
canvas.on('mouse:up', function (e) {
    panning = false;
});

canvas.on('mouse:down', function (e) {
    panning = true;
});
canvas.on('mouse:move', function (e) {
    if (panning && e && e.e) {
        debugger;
        var units = 10;
        var delta = new fabric.Point(e.e.movementX, e.e.movementY);
        canvas.relativePan(delta);
    }
});

$(function () {
    $('#zoomIn').click(function () {
        canvas.setZoom(canvas.getZoom() * 1.1);
    });

    $('#zoomOut').click(function () {
        canvas.setZoom(canvas.getZoom() / 1.1);
    });
});

My fiddle

最佳答案

使用 fromURL 将图像添加到 Canvas

fabric.Image.fromURL(imgURL, function(oImg) {
  oImg.set({
    "left": 0,
    "top": 0,
    "scaleX": canvas.width / oImg.width,
    "scaleY": canvas.height / oImg.height
  })
  canvas.renderAll();
});

此处已更新 jsFiddle

关于javascript - 鼠标拖动时背景移动 Fabric.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48070947/

相关文章:

javascript - 通过 javascript 设置 Shopify 选项选择器/更改所选变体的值

javascript - 同一类中多个元素上的 jQuery .text()

javascript - 有没有可能用 mustache 做一些像 beforeall 这样的事情?

css - 为什么占位符不起作用,即 9 和 8?

javascript - 带边框的 Div 在 dragend 上调整大小

javascript - webdriver.io - 单击存在许多元素的特定元素

javascript - 我的下拉按钮不起作用

javascript - HTML Canvas - 绘图在调整大小时消失

javascript - 如何在javascript中加载外部着色器?

node.js - 如何使用 Node.js 即时创建图像?