TypeScript
by mnk
HTML
<div class="grid-container">
<div class="item1">Header</div>
<div class="item2">Menu</div>
<div class="item3">Main</div>
<div class="item4">Right</div>
<div class="item5">Footer</div>
</div>
<button>
click me
</button>
CSS
.item1 { grid-area: header; }
.item2 { grid-area: menu; }
.item3 {
grid-area: main;
transition: all 1s ease-in-out;
}
.item4 {
grid-area: right;
opacity: 0;
transition: all 1s ease-in-out;
}
.item5 { grid-area: footer; }
.open .item4 {
/* display: block; */
opacity: 1;
}
.grid-container {
display: grid;
grid-auto-rows: auto;
grid-template-areas:
'header header header header header header'
'menu main main main main main'
'menu footer footer footer footer footer';
gap: 10px;
background-color: #2196F3;
padding: 10px;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-ms-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
.grid-container > div {
background-color: rgba(255, 255, 255, 0.8);
text-align: center;
padding: 20px 0;
font-size: 30px;
}
.open {
grid-template-areas:
'header header header header header header'
'menu main main main main right'
'menu footer footer footer footer footer';
}
TypeScript
const btn = document.querySelector('button')
const panel = document.querySelector('.grid-container')
btn.addEventListener('click', () => {
panel.classList.toggle('open')
})