У меня есть оверлейный элемент для 2 кнопок, и я пытаюсь реализовать своего рода активное состояние, изменяя свойство grid-area элемента, чтобы оно совпадало со свойством кнопки, на которую была нажата кнопка.
Мне было интересно, можно ли анимировать это изменение и использовать какую-то анимацию слайдов.
const overlay = document.querySelector('.overlay');
const hello = document.querySelector('.btn-1');
const world = document.querySelector('.btn-2');
hello.addEventListener('click', e => {
overlay.style.gridArea = '1 / 1 / -1 / 2';
});
world.addEventListener('click', e => {
overlay.style.gridArea = '1 / 2 / -1 / -1';
});
.grid {
width: 1000px;
display: grid;
grid-template: 1fr / repeat(2, min-content);
}
.overlay {
background-color: cornflowerblue;
width: 100%;
height: 100%;
grid-area: 1 / 1 / -1 / 2;
}
.btn {
text-align: center;
width: 100px;
font-size: 30px;
font-family: sans-serif;
padding: 20px 40px;
cursor: pointer;
}
.btn-1 {
grid-area: 1 / 1 / -1 / 2;
}
.btn-2 {
grid-area: 1 / 2 / 2 / -1;
}
<div class="grid">
<div class="overlay"></div>
<span class="btn btn-1">Hello</span>
<span class="btn btn-2">World</span>
</div>