CSS3规模变换和定位

时间:2012-11-10 16:42:30

标签: javascript css css3

所以我正在开发一个项目,我需要在窗口调整大小时缩放div(以及它包含的所有元素)。我的想法是使用CSS3比例变换。然而,当我调整大小时,我发现div缩小到窗口的中间,而不是留在我定位的位置。

这是一个(非常)简单的例子,我希望在我的意思中说明:http://jsfiddle.net/hmY9q/3/ - 我希望看到的是蓝色框与结果框的边框和底部红色的盒子。

我在纠正问题时的第一个想法是计算我希望div处于的位置与它实际出现的位置之间的差异,并使用变换矩阵同时进行缩放和平移。虽然我无法使其正常工作,但这似乎是一种效率低下且不太优雅的解决方案。

这是代码(不会让我在没有代码的情况下发布问题):

var yShift = (container.height() * scale) - container.height();
var xShift = (container.width() * scale) - container.width();
container.css(browserID + "transform", "matrix("+ scale + ",0,0," + scale + "," + -xShift + "," + -yShift + ")");

注意:我正在haxe编程并编译为js,所以这就是代码有点不同的原因。 'container'是一个JQuery对象,可以视为一个。

那么,那里的任何人都可以想到一些神奇的CSS或javascript来简化这个吗?我是不是疯狂吃药,错过了一些真正愚蠢的东西?谢谢!

1 个答案:

答案 0 :(得分:2)

使用transform-origin.

很简单

例如:transform-origin: top left;

Demo