css3 transition transform let white space 元素之间
css3 Transition transform let white space between elements
我在 2 div 之间有一个动画。理想情况下,我希望 "push" 彼此感觉就像是一个在 Z 轴上旋转的 3d 盒子。
我有这个
body {
overflow:hidden
}
div {
position:absolute;
display:inline-block;
margin:0;
}
div:first-child {
left:0;
width:100%;
height:100%;
background-color:#453525;
transform:scaleX(1);
transition:transform .8s ease-out, width .8s ease-in, left .8s ease-in;
}
div:nth-child(2) {
left:101%;
width:0;
height:100%;
background-color:#754512;
transform:scaleX(0);
transition:transform .8s ease-out, width .8s ease-in, left .8s ease-in;
}
body:hover div:first-child {
transform:scaleX(0);
width:0;
left:-101%;
}
body:hover div:nth-child(2) {
transform:scaleX(1);
width:100%;
left:0;
}
<div>
</div>
<div>
</div>
如您所见,我的 div 之间有一个巨大的 space。我试图降低第一个 div 的过渡持续时间,以便第二个接近,但无论如何我仍然得到白色 space.
有什么想法吗?
编辑:我项目中的 divs 包含一些东西,所以当它放大或缩小时看起来像是在转动,这就是为什么我不单独使用简单的宽度或左过渡
我想你可以去掉左边的过渡并调整变换原点,这样 div 都保持链接:
body {
overflow:hidden;
margin:0;
height:100vh;
}
div {
position:absolute;
display:inline-block;
margin:0;
}
div:first-child {
left:0;
width:100%;
height:100%;
background-color:#453525;
transform:scaleX(1);
transform-origin:right;
transition:transform .8s ease-out, width .8s ease-in;
}
div:nth-child(2) {
right:0;
width:0;
height:100%;
background-color:#754512;
transform:scaleX(0);
transform-origin:left;
transition:transform .8s ease-out, width .8s ease-in;
}
body:hover div:first-child {
transform:scaleX(0);
width:0;
}
body:hover div:nth-child(2) {
transform:scaleX(1);
width:100%;
}
<div>
</div>
<div>
</div>
我在 2 div 之间有一个动画。理想情况下,我希望 "push" 彼此感觉就像是一个在 Z 轴上旋转的 3d 盒子。
我有这个
body {
overflow:hidden
}
div {
position:absolute;
display:inline-block;
margin:0;
}
div:first-child {
left:0;
width:100%;
height:100%;
background-color:#453525;
transform:scaleX(1);
transition:transform .8s ease-out, width .8s ease-in, left .8s ease-in;
}
div:nth-child(2) {
left:101%;
width:0;
height:100%;
background-color:#754512;
transform:scaleX(0);
transition:transform .8s ease-out, width .8s ease-in, left .8s ease-in;
}
body:hover div:first-child {
transform:scaleX(0);
width:0;
left:-101%;
}
body:hover div:nth-child(2) {
transform:scaleX(1);
width:100%;
left:0;
}
<div>
</div>
<div>
</div>
如您所见,我的 div 之间有一个巨大的 space。我试图降低第一个 div 的过渡持续时间,以便第二个接近,但无论如何我仍然得到白色 space.
有什么想法吗?
编辑:我项目中的 divs 包含一些东西,所以当它放大或缩小时看起来像是在转动,这就是为什么我不单独使用简单的宽度或左过渡
我想你可以去掉左边的过渡并调整变换原点,这样 div 都保持链接:
body {
overflow:hidden;
margin:0;
height:100vh;
}
div {
position:absolute;
display:inline-block;
margin:0;
}
div:first-child {
left:0;
width:100%;
height:100%;
background-color:#453525;
transform:scaleX(1);
transform-origin:right;
transition:transform .8s ease-out, width .8s ease-in;
}
div:nth-child(2) {
right:0;
width:0;
height:100%;
background-color:#754512;
transform:scaleX(0);
transform-origin:left;
transition:transform .8s ease-out, width .8s ease-in;
}
body:hover div:first-child {
transform:scaleX(0);
width:0;
}
body:hover div:nth-child(2) {
transform:scaleX(1);
width:100%;
}
<div>
</div>
<div>
</div>