햄버거 메뉴 CSS CSS 및 JavaScript로 햄버거 메뉴 아이콘을 만드는 방법
10377 단어 designwebdevcssjavascript
최근에는 프론트엔드 기술, 특히 CSS와 애니메이션을 개선하는 데 많은 시간을 투자하고 있습니다. 그들이 말했듯이 당신이 무언가를 잘하고 싶다면 많은 연습을 해야 합니다. 포트폴리오 작업을 하면서 햄버거 메뉴 아이콘이 필요했는데, 기존에 있는 것을 사용하고 싶지 않아서 직접 만들기로 했습니다.
전제 조건
기본적인 HTML, CSS 및 Javascript 지식만 따라하면 됩니다.
HTML 작성
HTML은 매우 간단합니다. 아이콘, 메뉴 아이콘 및 그 안에 중첩된 세 줄에 대한 컨테이너가 있습니다.
<div class="container">
<div class="menu-icon">
<span class="line-1"></span>
<span class="line-2"></span>
<span class="line-3"></span>
</div>
</div>
페이지의 기본 스타일
이것은 아이콘을 중앙에 놓고 모든 것을 보기 좋게 만들기 위한 것입니다.
body {
background: #09182F;
}
.container {
width: 100%;
height: 80vh;
display: flex;
align-items: center;
justify-content: center;
}
메뉴 아이콘 스타일 지정
grid
를 사용하여 메뉴 아이콘과 내포된 줄을 쉽게 배치할 수 있습니다. place-items: center
는 두 가지 기능을 수행하는 스위스 군용 칼입니다. align-items: center
및 justify-items: center
..menu-icon {
display: grid;
place-items: center;
height: 55px;
width: 50px;
cursor: pointer;
}
3줄 스타일링
다음을 추가하여 중첩된 선의 스타일을 지정합니다. 아이콘이 덜 전통적으로 보이도록 첫 번째 줄과 두 번째 줄에 서로 다른 너비를 제공합니다.
.menu-icon {
...
& > span {
width: 50px;
height: 3px;
background: red;
display: block;
transition: all 0.3s ease-in-out;
}
}
.line-1 {
width: 42px;
justify-self: end;
}
.line-2 {
width: 35px;
justify-self: end;
}
호버 효과
호버 효과에서 첫 번째와 두 번째 줄의 너비를 변경합니다. 전환을 통해 폭 사이를 매끄럽고 원활하게 전환할 수 있습니다.
.menu-icon {
...
&:hover span:nth-child(1) {
width: 35px;
}
&:hover span:nth-child(2) {
width: 40px;
}
}
아이콘 onClick 애니메이션
여기에 재미있는 부분이 있습니다. 클릭했을 때 첫 번째와 세 번째 선이 회전하여 X를 형성하고 두 번째 선이 사라지도록 만들고 싶습니다.
.menu-icon {
...
&.active span:nth-child(1) {
transform-origin: center center;
transform: rotate(-45deg) translate(-12px, 12px);
width: 55px;
}
&.active span:nth-child(2) {
transform: translateX(10px);
opacity: 0;
}
&.active span:nth-child(3) {
transform-origin: center center;
transform: rotate(45deg) translate(-15px, -14px);
width: 55px;
}
}
menu-icon
를 클릭하면 active
클래스가 추가되고 1번째와 2번째lines
가 대상이 되며 rotate
& translate
속성을 사용하여 X를 형성합니다. 또한 2번째 줄을 숨깁니다. translateX
를 사용하여 이동하고 불투명도를 0으로 설정합니다.자바스크립트 추가
남은 것은
active
클래스를 토글하기 위해 약간의 J를 추가하는 것입니다.const menuIcon = document.querySelector('.menu-icon');
function toggleMenuIcon() {
menuIcon.classList.toggle('active')
}
menuIcon.addEventListener('click', toggleMenuIcon);
그리고 당신은 간다. 우리만의 맞춤형 햄버거 메뉴 아이콘. 최종 결과는 아래와 같습니다.
새로운 것을 배웠다면 좋아요와 댓글을 남겨주세요.
Reference
이 문제에 관하여(햄버거 메뉴 CSS CSS 및 JavaScript로 햄버거 메뉴 아이콘을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/emmaadesile/how-to-create-a-hamburger-menu-icon-with-css-and-javascript-1kgd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)