mirror of
https://github.com/zhigang1992/react.git
synced 2026-02-01 22:41:03 +08:00
feat(modal): optimize the animation of layer
This commit is contained in:
@@ -45,14 +45,14 @@ const ModalWrapper: React.FC<React.PropsWithChildren<ModalWrapperProps>> = ({
|
||||
padding: ${theme.layout.gap};
|
||||
box-shadow: ${theme.expressiveness.shadowLarge};
|
||||
opacity: 0;
|
||||
transform: translate3d(0px, -40px, 0px);
|
||||
transform: translate3d(0px, -30px, 0px);
|
||||
transition: opacity 0.35s cubic-bezier(0.4, 0, 0.2, 1) 0s,
|
||||
transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) 0s;
|
||||
}
|
||||
|
||||
.wrapper-enter {
|
||||
opacity: 0;
|
||||
transform: translate3d(0px, -40px, 0px);
|
||||
transform: translate3d(0px, -30px, 0px);
|
||||
}
|
||||
|
||||
.wrapper-enter-active {
|
||||
@@ -67,7 +67,7 @@ const ModalWrapper: React.FC<React.PropsWithChildren<ModalWrapperProps>> = ({
|
||||
|
||||
.wrapper-leave-active {
|
||||
opacity: 0;
|
||||
transform: translate3d(0px, -50px, 0px);
|
||||
transform: translate3d(0px, -30px, 0px);
|
||||
}
|
||||
`}</style>
|
||||
</div>
|
||||
|
||||
@@ -37,7 +37,7 @@ const Backdrop: React.FC<React.PropsWithChildren<BackdropProps>> = React.memo(
|
||||
}
|
||||
|
||||
return (
|
||||
<CSSTransition visible={visible} clearTime={300}>
|
||||
<CSSTransition name="backdrop-wrapper" visible={visible} clearTime={300}>
|
||||
<div className="backdrop" onClick={clickHandler} onMouseUp={mouseUpHandler}>
|
||||
<div className="layer" />
|
||||
<div
|
||||
@@ -93,6 +93,22 @@ const Backdrop: React.FC<React.PropsWithChildren<BackdropProps>> = React.memo(
|
||||
pointer-events: none;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.backdrop-wrapper-enter .layer {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.backdrop-wrapper-enter-active .layer {
|
||||
opacity: ${theme.expressiveness.portalOpacity};
|
||||
}
|
||||
|
||||
.backdrop-wrapper-leave .layer {
|
||||
opacity: ${theme.expressiveness.portalOpacity};
|
||||
}
|
||||
|
||||
.backdrop-wrapper-leave-active .layer {
|
||||
opacity: 0;
|
||||
}
|
||||
`}</style>
|
||||
</div>
|
||||
</CSSTransition>
|
||||
|
||||
Reference in New Issue
Block a user