2008-12-22 84 views
2

我正在研究JavaScript图像大小调整功能,它依赖于仅IE浏览器的DXImageTransform插件。使用画布调整图像大小 - css溢出问题

为了解决现代浏览器的问题,我给了一个画布,效果不错。

 
function Resize(oObj, flMultiplier) 
{  
    var canvas = document.getElementById('canvas'); 
    var canvasContext = canvas.getContext('2d'); 

    oObj.style.visibility = 'hidden'; 

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

如果我的形象变得比帆布项目做大,然后一会只能看到图像,这是一个部分:

然而,我在调整大小功能,这是下面面临的问题坏。

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

所以我最终宣告 canvas元素,这是非常好的,只是我的网页的CSS溢出是我最大的元素上进行调整,而不是我的尺寸调整的图像,这是一种痛苦。

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

  1. 尝试从溢流方案排除在大画布元素
  2. 尝试调整何时更新canvas元素的大小(我可能已经错过了东西有)

回答

2

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

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

+0

那么,我有一个锤子(最近用来画图以便旋转图像),所以调整大小时像一个钉子一样疯狂地看着我。 无论如何,我解决了我的问题,使用CSS调整大小,它完美的作品。 感谢提示,我会接受你的答案。 – Vinzz 2009-01-06 12:57:41