2

我正在开发一个 JavaScript 图像大小调整功能,它依赖于 IE only DXImageTransform 插件。

也想解决现代浏览器问题,我试了一下画布,结果非常好。

但是,我在调整大小函数中遇到了一个问题,如下所示:

函数调整大小(oObj,flMultiplier)
{       
  var canvas = document.getElementById('canvas');
  var canvasContext = canvas.getContext('2d');

  oObj.style.visibility = '隐藏';

  canvasContext.clearRect(0,0,canvas.width,canvas.height); // 清除画布
  canvasContext.fillStyle = 'rgba(0,0,0,0.4)';
  canvasContext.scale(flMultiplier,flMultiplier);
  canvasContext.drawImage(oObj, 0, 0);
}

如果我的图像变得比画布项目大,那么人们只会看到图像的一部分,这很糟糕。

我试图在运行时调整画布大小,但如果影响调整大小图像的显示。

所以我最终声明了一个的画布元素,这很好,除了我的网页的 css 溢出是在我最大的元素上调整的,而不是在我调整大小的图像上,这很痛苦。

所以我想有两种方法可以解决我的问题:

  1. 尝试从溢出方案中排除大画布元素
  2. 调整大小时尝试更新画布元素大小(我可能在那里遗漏了一些东西)
4

1 回答 1

3

我自己没有尝试过,但也许你可以从 Dom 中创建一个画布元素,使用document.createElement. 它可以是任意大小而不会干扰显示。

现在,我缺乏上下文(为什么要以这种方式调整图像大小而不是使用宽度和高度属性,以及其他问题)所以也许我错过了重点。

于 2008-12-23T23:34:59.993 回答