try animate change content container
This commit is contained in:
@@ -60,6 +60,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 30px;
|
gap: 30px;
|
||||||
|
transition: .5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-part-text-container {
|
.main-part-text-container {
|
||||||
@@ -185,3 +186,29 @@
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: .3s;
|
transition: .3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* starting ENTER animation */
|
||||||
|
.change-main-part-content-enter {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ending ENTER animation */
|
||||||
|
.change-main-part-content-enter-active {
|
||||||
|
opacity: 1;
|
||||||
|
transition: .3s;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* starting EXIT animation */
|
||||||
|
.change-main-part-content-exit {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ending EXIT animation */
|
||||||
|
.change-main-part-content-exit-active {
|
||||||
|
opacity: 0;
|
||||||
|
transition: .3s;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
@@ -1,14 +1,15 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useEffect, useRef, useState } from "react";
|
||||||
import './mainPart.css';
|
import './mainPart.css';
|
||||||
import { PinkButton } from "./button";
|
import { PinkButton } from "./button";
|
||||||
import { MainPartHeader } from "./mainPartHeader";
|
import { MainPartHeader } from "./mainPartHeader";
|
||||||
import { ContentContainer } from "./contentContainer";
|
import { ContentContainer } from "./contentContainer";
|
||||||
import { MainPartFooter } from "./main-part-footer";
|
import { MainPartFooter } from "./main-part-footer";
|
||||||
import { OrLineContainer } from "./orLineContainer";
|
import { OrLineContainer } from "./orLineContainer";
|
||||||
import { CSSTransition } from "react-transition-group";
|
import { CSSTransition, TransitionGroup } from "react-transition-group";
|
||||||
|
|
||||||
|
|
||||||
export const MainPart: React.FC = React.memo(() => {
|
export const MainPart: React.FC = React.memo(() => {
|
||||||
|
const changeContent = useRef(0);
|
||||||
const [showBackground, setShowBackground] = useState<boolean>(false);
|
const [showBackground, setShowBackground] = useState<boolean>(false);
|
||||||
const [currentContent, setCurrentContent] = useState<JSX.Element>(
|
const [currentContent, setCurrentContent] = useState<JSX.Element>(
|
||||||
<ContentContainer
|
<ContentContainer
|
||||||
@@ -19,6 +20,10 @@ export const MainPart: React.FC = React.memo(() => {
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// changeContent.current += 1;
|
||||||
|
}, [currentContent])
|
||||||
|
|
||||||
function onClickStartDemo() {
|
function onClickStartDemo() {
|
||||||
setCurrentContent(
|
setCurrentContent(
|
||||||
<>
|
<>
|
||||||
@@ -27,13 +32,13 @@ export const MainPart: React.FC = React.memo(() => {
|
|||||||
descriptText="Начните новую демонстрацию жилого комплекса"
|
descriptText="Начните новую демонстрацию жилого комплекса"
|
||||||
onClickButton={() => onClickCreateNewDemo()}
|
onClickButton={() => onClickCreateNewDemo()}
|
||||||
textButton='Начать новую демонстрацию'
|
textButton='Начать новую демонстрацию'
|
||||||
/>
|
/>
|
||||||
<OrLineContainer />
|
<OrLineContainer />
|
||||||
<ContentContainer
|
<ContentContainer
|
||||||
descriptText="Запланируйте демонстрацию с сотрудником отдела продаж"
|
descriptText="Запланируйте демонстрацию с сотрудником отдела продаж"
|
||||||
onClickButton={() => onClickPlaneDemo()}
|
onClickButton={() => onClickPlaneDemo()}
|
||||||
textButton='Запланировать демонстрацию'
|
textButton='Запланировать демонстрацию'
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -69,9 +74,17 @@ export const MainPart: React.FC = React.memo(() => {
|
|||||||
return <div className="main-part-container">
|
return <div className="main-part-container">
|
||||||
<div className="background-image"></div>
|
<div className="background-image"></div>
|
||||||
<MainPartHeader />
|
<MainPartHeader />
|
||||||
<div className="main-part-content">
|
<TransitionGroup>
|
||||||
{currentContent}
|
<CSSTransition
|
||||||
</div>
|
key={changeContent.current}
|
||||||
|
timeout={300}
|
||||||
|
classNames={'change-main-part-content'}
|
||||||
|
>
|
||||||
|
<div className="main-part-content">
|
||||||
|
{currentContent}
|
||||||
|
</div>
|
||||||
|
</CSSTransition>
|
||||||
|
</TransitionGroup>
|
||||||
<CSSTransition
|
<CSSTransition
|
||||||
in={showBackground}
|
in={showBackground}
|
||||||
timeout={300}
|
timeout={300}
|
||||||
|
|||||||
Reference in New Issue
Block a user