diff --git a/src/Components/SingleDayForecast/Component.css b/src/Components/SingleDayForecast/Component.css index 0483a8c..0bf3ab6 100644 --- a/src/Components/SingleDayForecast/Component.css +++ b/src/Components/SingleDayForecast/Component.css @@ -1,3 +1,16 @@ +@keyframes SingleDayForecast-summary-init-bounce { + 0% { + transform: translate(0, -50%); + } + 50% { + transform: translate(0, -60%); + } + + 100% { + transform: translate(0, -50%); + } +} + .SingleDayForecast { float: left; width: 20%; @@ -31,11 +44,15 @@ transition: 1s all; } -.SingleDayForecast.maximize .summary { +.SingleDayForecast.maximized .summary { top: 45%; transform: translate(0, -50%); + } +.SingleDayForecast:nth-child(1).maximized-initial .summary { + animation: SingleDayForecast-summary-init-bounce 1s ease-in-out 1s 1; +} .SingleDayForecast .summary>* { padding: 0.125em 0; @@ -97,7 +114,7 @@ transition: opacity 1s; } -.SingleDayForecast.maximize .summary .bottom-dividor{ +.SingleDayForecast.maximized .summary .bottom-dividor{ opacity: 0; } @@ -114,7 +131,7 @@ transition: visibility 0s 1s; } -.SingleDayForecast.maximize .details { +.SingleDayForecast.maximized .details { visibility: hidden; transition: visibility 0s 0s; diff --git a/src/Components/SingleDayForecast/Component.tsx b/src/Components/SingleDayForecast/Component.tsx index ff07027..402df27 100644 --- a/src/Components/SingleDayForecast/Component.tsx +++ b/src/Components/SingleDayForecast/Component.tsx @@ -12,13 +12,15 @@ export interface SingleDayForecastProps { type numberOrString = number | string; -export class SingleDayForecast extends React.Component { +export class SingleDayForecast extends React.Component { constructor(props: SingleDayForecastProps) { super(props); this.props = props; - this.state = { maximized: true }; + this.state = { maximized: true, maximizedInitial: true }; this.minimizeIfAlreadyMaximized = this.minimizeIfAlreadyMaximized.bind(this); this.maximizeIfAlreadyMinimized = this.maximizeIfAlreadyMinimized.bind(this); @@ -94,7 +96,7 @@ export class SingleDayForecast extends React.Component { return { maximized: !prevState.maximized }; }); + this.setState((prevState) => { return { maximized: !prevState.maximized, maximizedInitial: false }; }); } maximizeIfAlreadyMinimized() { @@ -109,20 +111,26 @@ export class SingleDayForecast extends React.Component +