반응형
데모: - https://codepen.io/iammanojrathod/pen/RwLOZGE
HTML 코드: -
<div class="button">
<div class="btn"></div>
</div>
CSS 코드: -
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body{
display: flex;
justify-content: center;
align-items: center;
background: black;
height: 100vh;
}
.button{
width: 100px;
height: 100px;
border: 3px solid white;
border-radius: 10px;
position: relative;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
}
.btn{
width: 70px;
height: 6px;
background-color: white;
border-radius: 10px;
cursor: pointer;
transition: all 0.5s ease;
}
.btn::before,
.btn::after{
content: '';
position: absolute;
width: 70px;
height: 6px;
background-color: white;
border-radius: 10px;
transition: all 0.5s ease;
}
.btn::before{
transform: translateY(-20px);
}
.btn::after{
transform: translateY(20px);
}
.button.open .btn{
background: transparent;
}
.button.open .btn::before{
transform: rotate(45deg) translate(1px, -1px);
background-color: red;
}
.button.open .btn::after{
transform: rotate(-45deg) translate(-1px, -1px);
background-color: red;
}
JavaScript 코드: -
const button = document.querySelector('.button');
let menuOpen = false;
button.addEventListener('click', () => {
if(!menuOpen){
button.classList.add('open');
menuOpen = true;
} else {
button.classList.remove('open');
menuOpen = false;
}
})
'css' 카테고리의 다른 글
CSS 소개 (0) | 2022.01.19 |
---|---|
전자상거래 개발 (0) | 2022.01.19 |
어두워짐(모드) (0) | 2022.01.19 |
테일윈드 CSS가 당신의 리뷰 과정을 개선할 수 있을까요? (0) | 2022.01.19 |
⚡HTML CSS를 사용하여 응답형 랜딩 페이지 작성 (0) | 2022.01.13 |
댓글