这是我的问题
我有4个div,位于position:absolute
,他们的位置是根据他们的ID来定义的。
当用户点击div时,div会进行旋转和缩放的转换。 我的目标是将结果div(黄色)放在一个非常特殊的位置:在父节点的中心。
现在在我的Fiddle中,它会自动旋转,这不是我想要的。
我尝试过的其他事情;
transform:translate(x,y)
,但这是相对的
点击它之前的div,这意味着每个div都会发送
将div转换到另一个位置。left:5%;top:5%;
,希望它可以正常工作,但确实如此
不transform-origin
但是再次,它相对于div本身
而不是父母或身体我的问题:是否可以在过渡期间相对于父节点而不是自身定义div的位置?
答案 0 :(得分:1)
我删除了你不想要的翻转效果。
我在父母身上添加了position:relative
。所以现在当你position: absolute
孩子的时候,他们就会根据父母来定位。
我将黄色方块放在中间位置:
top:50% !important;
left:50% !important;
margin-top: -75px;
margin-left: -75px;
忘记包含链接:http://jsfiddle.net/hZfhQ/2/
答案 1 :(得分:1)
您的top
和left
覆盖不起作用的原因是因为ID选择器比类选择器更具体,因此优先。您可以使用!important
:
.isTurning{
background-color:yellow;
z-index:1;
-webkit-transition: -webkit-transform 0.3s ease-in-out, left 0.3s ease-in-out, top 0.3s ease-in-out;
-webkit-transform: scale(2) rotateY(180deg);
left:27% !important;
top: 25% !important;
}
或使用特异性:
#b_1.isTurning, #b_2.isTurning, #b_3.isTurning, #b_4.isTurning{
background-color:yellow;
z-index:1;
-webkit-transition: -webkit-transform 0.3s ease-in-out, left 0.3s ease-in-out, top 0.3s ease-in-out;
-webkit-transform: scale(2) rotateY(180deg);
left:27%;
top: 25%;
}