我正在开发一个JavaScript图像大小调整功能,它依赖于IE只有DXImageTransform插件 .
想要解决现代浏览器的问题,我还是给了画布一个很好的结果 .
但是,我在调整大小功能时面临一个问题,如下所示:
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);
}
如果我的图像变得比画布项目大,那么人们将只看到图像的一部分,这是不好的 .
我试图在运行时调整画布大小,但是如果影响调整大小的图像的显示 .
所以我最终宣布了一个很大的画布元素,这是非常好的,除了我的网页的CSS溢出调整我的最大元素,而不是我调整大小的图像,这是一个痛苦 .
所以我想有两种方法可以解决我的问题:
-
尝试从溢出方案中排除大画布元素
-
尝试在调整大小时更新画布元素大小(我可能错过了那里的东西)
1 回答
我自己没有尝试过,但也许你可以用
document.createElement
从Dom创建一个canvas元素 . 它可以是任意大小而不会打扰显示器 .现在,我缺乏上下文(为什么你这样调整图像大小而不是使用宽度和高度属性,以及其他问题)所以也许我错过了这一点 .