implementstion
This commit is contained in:
parent
c007aec06e
commit
c0423f27d3
@ -1,9 +1,9 @@
|
|||||||
import './Header.css';
|
import './Header.css';
|
||||||
import './woble.css'
|
|
||||||
import React from "react"
|
import React from "react"
|
||||||
import { NavLink } from "react-router-dom";
|
import { NavLink } from "react-router-dom";
|
||||||
import OnlineToggle from './OnlineTgl';
|
import OnlineToggle from './OnlineTgl';
|
||||||
import { AppData } from "../context/data"
|
import { AppData } from "../context/data"
|
||||||
|
import Wobler from './Wobler';
|
||||||
|
|
||||||
export default function Header() {
|
export default function Header() {
|
||||||
const [data] = React.useContext(AppData)
|
const [data] = React.useContext(AppData)
|
||||||
@ -18,24 +18,11 @@ export default function Header() {
|
|||||||
<NavLink to="/about">
|
<NavLink to="/about">
|
||||||
About
|
About
|
||||||
</NavLink>
|
</NavLink>
|
||||||
<NavLink to="/game" className={data.gamesFetching && "woble"}>
|
<NavLink to="/game">
|
||||||
<span>G</span>
|
<Wobler text="Game" dance={data.gamesFetching} />
|
||||||
<span>a</span>
|
|
||||||
<span>m</span>
|
|
||||||
<span>e</span>
|
|
||||||
</NavLink>
|
</NavLink>
|
||||||
<NavLink to="/leaderboard" className={data.leaderboardFetching && "woble"}>
|
<NavLink to="/leaderboard">
|
||||||
<span>L</span>
|
<Wobler text="Leaderboard" dance={data.leaderboardFetching} />
|
||||||
<span>e</span>
|
|
||||||
<span>a</span>
|
|
||||||
<span>d</span>
|
|
||||||
<span>e</span>
|
|
||||||
<span>r</span>
|
|
||||||
<span>b</span>
|
|
||||||
<span>o</span>
|
|
||||||
<span>a</span>
|
|
||||||
<span>r</span>
|
|
||||||
<span>d</span>
|
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
42
webapp/src/components/Wobler.css
Normal file
42
webapp/src/components/Wobler.css
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
/* https://blog.karimould.dev/hover-letter-wave-effect-in-css */
|
||||||
|
|
||||||
|
/*
|
||||||
|
.wave > span {
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
@keyframes wave {
|
||||||
|
0% {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: scale(1.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: scale(1) rotate(-5deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.wobler.dance {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wobler.dance span {
|
||||||
|
animation: wave 0.4s linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wobler.dance span:nth-child(2) {
|
||||||
|
animation-delay: 0.1s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wobler.dance span:nth-child(3) {
|
||||||
|
animation-delay: 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wobler.dance span:nth-child(4) {
|
||||||
|
animation-delay: 0.3s;
|
||||||
|
}
|
14
webapp/src/components/Wobler.jsx
Normal file
14
webapp/src/components/Wobler.jsx
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import './Wobler.css'
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
export default function Wobler({ text, dance }) {
|
||||||
|
const spannedMessage = Array.from(text).map((letter, idx) => {
|
||||||
|
return <span key={idx}>{letter}</span>
|
||||||
|
})
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={'wobler' + (dance === true ? ' dance' : '')}>
|
||||||
|
{spannedMessage}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -1,38 +0,0 @@
|
|||||||
/* https://blog.karimould.dev/hover-letter-wave-effect-in-css */
|
|
||||||
|
|
||||||
.woble {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* .wave > span {
|
|
||||||
transform: rotate(-90deg);
|
|
||||||
} */
|
|
||||||
|
|
||||||
@keyframes wave {
|
|
||||||
0% {
|
|
||||||
transform: scale(1) /*rotate(-90deg)*/;
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
transform: scale(1.1) /*rotate(-90deg)*/;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: scale(1) rotate(-5deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.woble span {
|
|
||||||
animation: wave 0.4s linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
.woble span:nth-child(2) {
|
|
||||||
animation-delay: 0.1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.woble span:nth-child(3) {
|
|
||||||
animation-delay: 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.woble span:nth-child(4) {
|
|
||||||
animation-delay: 0.3s;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user