Nie jest to może do końca to o co Ci chodziło, ale realizuje efekt tzn - odsłaniane menu:
index.html
Do kontenera o id container-back możesz wrzucić menu, ikonki hamburgera i close są zastąpione png a nie zrobione w css, jak zrobić ikonki w css znajdziesz np w linku który przeslałeś. Do ikonek dodane sa funkcje js odsłaniające i zasłaniające diva poniżej.
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>Pochyłe menu</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel='stylesheet' type='text/css' media='screen' href='main.css'>
</head>
<body>
<div id='front-container' class='container container-front'>
<img class='hamburger' src='hamburger-icon.png' alt='hamburger' onclick='rotateGo();'/>
</div>
<div class='container container-back'>
<img class='ikon' src='close-icon.png' alt='hamburger' onclick='rotateBack();'/>
</div>
<script type='text/javascript' src='main.js'></script>
</body>
</html>
main.css
stylowanie kontenerów i animacje:
a) rotate-go : odsłania diva przesuwając się o 10stopni i według x center i y 200% po animacji zachowane jest ustawienie ostatniej klatki (animation-fill-mode: forwards;),
b) rotate-back : przysłania diva ma ustawienia ostatniej klatki rotate-go jako początkowe i ma powrócić do pozycji 0deg według x center i y 200%
* {
margin: 0;
padding: 0;
}
.container {
height: 100vh;
width: 100%;
left: 0;
position: fixed;
top: 0;
}
.container-front {
background-color: #FAEBD7;
}
.container-back {
background-color: #ADFF2F;
z-index: -1;
}
.ikon {
left: 20px;
cursor: pointer;
position: fixed;
top: 20px;
}
.rotate-go {
animation: rotate-go 2s linear;
animation-fill-mode: forwards;
}
@keyframes rotate-go {
100% {
transform: rotate(10deg);
transform-origin: center 200%;
}
}
.rotate-back {
animation: rotate-back 2s linear;
animation-fill-mode: forwards;
transform: rotate(10deg);
transform-origin: center 200%;
}
@keyframes rotate-back {
100% {
transform: rotate(0deg);
transform-origin: center 200%;
}
}
main.js
Funkcje uruchamiające animacje za pomocą dodawania i usuwania klas
const frontContainer = document.querySelector('#front-container');
function rotateGo() {
if(frontContainer.classList.contains('rotate-back')){
frontContainer.classList.remove('rotate-back');
}
frontContainer.classList.add('rotate-go');
}
function rotateBack() {
if(frontContainer.classList.contains('rotate-go')){
frontContainer.classList.remove('rotate-go');
}
frontContainer.classList.add('rotate-back');
}
linki do ikonek:
https://www.iconfinder.com/icons/134216/hamburger_lines_menu_icon (hamburger) ,
https://www.iconfinder.com/search/?q=close&from=navbar (close)