UI를 프레임워크를 사용해서 만들어진 UI를 사용하기도 하지만, 커스텀이 어려운 경우 직접 만들기도 하는데, 직접 만들어야 하는 경우가 최근에 있었기 때문에 정리를 한다.
나 모달
<button id="open">
모달 열기
</button>
<div class="modal">
<div class="backdrop"></div>
<div class="content">
나 모달
<button id="close">모달 닫기</button>
<div>
</div>
.modal {
position: fixed;
left: 0;
top: 0;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
opacity: 0;
visibility: hidden;
transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}
.modal.show {
opacity: 1;
visibility: visible;
}
.backdrop {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.75);
transition: background 0.3s;
}
.content {
position: relative;
width: 400px;
height: 150px;
background: #fff;
transition: opacity 0.3s ease-out;
}
const modal = document.querySelector('.modal')
const openButton = document.querySelector('#open')
const closeButton = document.querySelector('#close')
openButton.addEventListener('click', e => {
modal.classList.add('show')
})
closeButton.addEventListener('click', e => {
modal.classList.remove('show')
})