У меня есть боковая панель, которую я вставляю / убираю. Когда я выдвигаю кнопку, нажимаю, она сдвигается вправо, чтобы скрыть, но снова появляется, когда ее нужно скрыть.
Боковая панель появляется при нажатии кнопки и скрывается при нажатии значка x
CSS
.pay-storage-container {
$inner-padding: 16px;
height: 100vh;
position: fixed;
right: 0;
top: 0;
width: 325px;
border: 1px solid #c0c2c7;
z-index: 1;
//Other subclasses
}
.showSideBar {
animation: slideIn 1s;
}
.closeSideBar {
animation: slideOut 1s;
}
@keyframes slideIn {
0% {
opacity: 0;
transform: translateX(350px);
}
100% {
opacity: 1;
transform: translate(0);
}
}
@keyframes slideOut {
100% {
opacity: 1;
transform: translateX(350px);
}
}
HTML
<div class = "pay-storage-container {{toggleSideBar ? 'showSideBar' : 'closeSideBar'}}">
<div class = "header-container">
<div class = "header">Pay Storage</div>
<span class='close-icon csx-common_delete' (click) = "closeSideBar()"></span>
</div>
<div class = "pay-storage-inner">
<div *ngIf = "paymentMessage$ | async as message">
{{ message | json }}
</div>
<app-equipment-summary [equipmentSummary]='equipmentSummary'></app-equipment-summary>
<app-credit-card #creditCardForm></app-credit-card>
<div>
</div>
</div>
<div class = "footer-container">
<button pButton type = "button" label = "Submit Payment" class = "x-primary-green-400" [disabled]='!creditCardForm.creditCardForm.valid'
(click) = "onSubmitPayment()"></button>
</div>
</div>
Я использую angular в этом проекте, и у меня есть переменная в файле .TS, которая переключает классы, чтобы изменить скольжение внутрь / наружу.
TS
toggleSideBar = true;
.
.
.
closeSideBar() {
this.toggleSideBar = false;
}
Я очень супер, это проблема с CSS, а не с угловой стороной, но я все же добавил на случай, если вы все захотите взглянуть






Вы можете добавить animation-fill-mode: forwards; в класс closeSideBar. Это гарантирует, что анимация не будет сброшена после достижения 100%.
.pay-storage-container {
$inner-padding: 16px;
height: 100vh;
position: fixed;
right: 0;
top: 0;
width: 325px;
border: 1px solid #c0c2c7;
z-index: 1;
//Other subclasses
}
.showSideBar {
animation: slideIn 1s;
}
.closeSideBar {
animation: slideOut 1s;
animation-fill-mode: forwards;
}
@keyframes slideIn {
0% {
opacity: 0;
transform: translateX(350px);
}
100% {
opacity: 1;
transform: translate(0);
}
}
@keyframes slideOut {
100% {
opacity: 1;
transform: translateX(350px);
}
}<div class = "pay-storage-container closeSideBar">
<div class = "header-container">
<div class = "header">Pay Storage</div>
<span class='close-icon csx-common_delete' (click) = "closeSideBar()"></span>
</div>
<div class = "pay-storage-inner">
<div *ngIf = "paymentMessage$ | async as message">
{{ message | json }}
</div>
<app-equipment-summary [equipmentSummary]='equipmentSummary'></app-equipment-summary>
<app-credit-card #creditCardForm></app-credit-card>
<div>
</div>
</div>
<div class = "footer-container">
<button pButton type = "button" label = "Submit Payment" class = "x-primary-green-400" [disabled]='!creditCardForm.creditCardForm.valid'
(click) = "onSubmitPayment()"></button>
</div>
Вы его убиваете! Огромное спасибо. Я знал, что это было что-то простое