Я создал угловую боковую панель. Я пытаюсь показать и скрыть ее с помощью CSS-анимации. Онлайн-пример :
Компонент боковой панели полагается на службу, которая знает, когда скрывать и отображать:
<div id="sidebar" [ngClass]="{'hide': sidebarService.hidden, 'show': !sidebarService.hidden}">
<button type="button" (click)="sidebarService.toggle()">
Close Sidebar
</button>
<nav>
<ul>
<li>
<a href="#">Page 3</a>
</li>
<li>
<a href="#">Page 4</a>
</li>
</ul>
</nav>
</div>
Я использую следующий код CSS:
@keyframes show {
from {left: -100%;}
to {left: 0;}
}
@keyframes hide {
from {left: 0;}
to {left: -100%;}
}
#sidebar {
background-color: #e0e0e0;
border: 1px solid red;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
position: fixed;
top: 0;
left: -100%;
right: 0;
bottom: 0;
width: 100%;
}
.hide {
animation-name: hide;
animation-duration: 1s;
}
.show {
animation-name: show;
animation-duration: 1s;
}
Я обнаружил 2 проблемы:
1 - боковая панель изначально видна и закрывается толькопосле;
2 - при нажатии открывается боковая панель, но после ее завершения она исчезает.
Я не уверен, что мне здесь не хватает ...