【发布时间】:2019-06-11 15:04:03
【问题描述】:
我创建了一个 Angular 侧边栏,我试图用 CSS 动画 Online Example 显示和隐藏它:
侧边栏组件依赖于 Service 来知道何时隐藏和显示:
<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 - 单击打开时侧边栏打开,但完成后消失。
我不确定我在这里缺少什么......
【问题讨论】:
标签: css angular angular6 css-animations angular7