1

所以我正在做一个项目,我需要在窗口调整大小时缩放 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 来简化这一点?我是不是在吃疯狂的药片而错过了一些非常愚蠢的东西?谢谢!

4

1 回答 1

2

这很简单transform-origin

例如:transform-origin: top left;

演示

于 2012-11-10T16:52:06.547 回答