JCanvas:全屏 canvas 超大可拖动图像

JCanvas: full screen canvas with oversize draggable image

使用 JCanvas,我想做两件事:

  1. 根据屏幕的宽高动态定义一个canvas的大小

  2. 将比屏幕大的图像绘制到 canvas 并使其可拖动,拖动在图像的边缘停止。

我有以下代码:

function init() {
    $canvas = $('#canvas');
    $canvas.width = window.innerWidth;
    $canvas.height = window.innerHeight;

    $canvas.drawImage({
        x: 0,
        y: 0,
        source: "../images/testimage.jpg",
        draggable: true,
        layer: true,
    }).drawLayers();
}

不幸的是,浏览器仅在左上角显示了图像中心的一小部分(w:300 px;h:150 px)。据我所知,这里不涉及 CSS。

我可以在 300 像素 x 150 像素的小视口中拖动图像。但是,我希望图像的可见部分散布在整个屏幕上并拖动以停止屏幕的边缘:永远不会看到白色 space。

我做错了什么?

尝试

var canvas = document.getElementById('canvas');
canvas.width = innerWidth;
canvas.height = innerHeight;

因为我永远无法锻炼 Jquery 因为看你的代码远非显而易见。如果可行,那么您就知道 jQuery 正在设置样式宽度和高度。对于 canvas,宽度和高度设置像素分辨率,canvas.style.width 高度设置显示大小。

默认 canvas 分辨率为 canvas.width = 300canvas.height = 150