从中心弹出

时间:2019-03-04 07:51:13

标签: css animation styled-components

我希望我的StyledModalWrapperscale()设置动画。

我的StyledComponent具有以下属性:

top: 50%;
left: 50%;
max-width: ${(props:IModal) => props.width};
min-height: auto;
transform: translate(-50%, -50%);
animation: ${(props:IModal) => props.closing ? popOut : popIn} .3s linear;

动画:

0% {
    transform: scale(0);
}
80% {
    transform: scale(1.25);
}
100% {
    transform: scale(1);
}

在这种情况下,该框可以完美缩放,只有位置不正确。

我尝试添加

0% {
    transform: scale(0) translate(100%, 100%);
}
80% {
    transform: scale(1.25) translate(25%, 25%);
}
100% {
    transform: scale(1) translate(50%, 50%);
}

在这种情况下,它会随着曲线滑动。

盒子的中心应始终位于父对象的中间。
父级的width/height100vw/100vh

1 个答案:

答案 0 :(得分:0)

如果您使用的是transform,则这是您的朋友:transform-origin

它允许您更改以将位置从左/上变换到其他任何位置。 您可能需要center

MDN文档:https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin