从中心缩放后,将元素保持在原始位置

时间:2014-02-01 17:09:05

标签: javascript jquery html css css3

所以我想知道如何计算从中心缩放的元素的translate css属性值(css:transform-origin: 50% 50% 0)。

这是我的HTML和CSS( FIDDLE http://jsfiddle.net/rPNyM/

HTML:

<div id="holder">
    <div id="dot"></div>  
  <div id="box"></div>
</div>

CSS:

#holder {
    position: absolute;
    width: 500px;
    height: 500px;
    background: #226699;

}

#dot {
  position: absolute;
  left: 100px;
  top: 100px;
  width: 5px;
  height: 5px;
  background: #ff0000;
  z-index: 20;  
}

#box {
   position: absolute;
   left: 100px;
   top: 100px;
   width: 100px;
   height: 100px; 
   background: #000; 
   transform: translate(-25px, -25px) scale(0.2,0.2);
   transform-origin: 50% 50% 0;      
   -moz-transform: translate(-25px, -25px) scale(0.2,0.2);
   -moz-transform-origin: 50% 50% 0;     
}

即使更改比例值,黑匣子也应与红框相同(左上)。

1 个答案:

答案 0 :(得分:4)

我自己找到答案(经过一些计算测试)。

就像这样计算(Javascript):

var pad_x = ((elem_width * scale) - elem_width) / 2;
var pad_y = ((elem_height * scale) - elem_height) / 2;