-
See the Pen 모바일 사이드 바 예제 by kimyangsun (@kimyangsun) on CodePen.
자바스크립트 제이쿼리 모바일 사이드 메뉴 예제 (jQuery Mobile Sidebar) 코드펜 소스코드 입니다.
제가 옛날에 퍼블리싱 공부를 시작할때 차근차근 만들어본 모바일 메뉴 기능인데 오랜만에 이 코드들을 보니까 예전에 공부할때 생각이 나면서, 예전 코드들을 보니까 고쳐줘야할 부분들이 막 보이고 그러는거 같아요 ㅋㅋㅋ
사이드 메뉴 안에는 3차메뉴까지 모두 열리도록 작업이 되어 있습니다.
또 예전에 공부할때 짠 코드라 그런가 주석으로 자세하게 설명을 적어가면서 작업한게 보이네요.
요새는 이렇게까지 자세하게 주석을 남기진 않는거같아요... 초심을 찾아야 할 거 같습니다.. :)
/* 토글 사이드 바 버튼 관련 */ $('.toggle-side-bar-btn').click(function(){ //console.log("토글 사이드바 버튼클릭"); var $clicked = $(this); var nowAnimating = $clicked.attr('data-ico-now-animating'); /* 만약 토글 사이드바 버튼의 요소가 Y가 되면 */ if ( nowAnimating == "Y" ){ return; /* 함수를 리턴하여 다시 안눌리게 한다 */ } /* 만약 클릭된 버튼에 active 클래스가 있다면 */ if ( $clicked.hasClass('active') ){ /* 사이드바를 없앤다 */ hideLeftSideBar(); } else { /* active 클래스가 없으면 나타나게 한다 */ showLeftSideBar(); } /* 아이콘의 색을 빨간색으로 만듬 */ $clicked.attr('data-ico-now-animating', 'Y'); /* 아이콘에 active 클래스가 없으면 active 클래스를 넣어주고 있으면 빼줌 */ $clicked.toggleClass('active'); /* 버튼 아이콘의 색이 변한 후에 0.4초 뒤에 다시 원래색으로 돌아오게 만듬 */ setTimeout(function(){ $clicked.attr('data-ico-now-animating', 'N'); }, 400); }); /* 왼쪽 사이드바 함수 */ function showLeftSideBar(){ /* 메뉴바가 나올때 안에 펼쳐져 있는 메뉴들을 다 접기위해 엑티브를 없앤다 */ $('.left-side-bar > .menu-1 ul > li.active').removeClass('active'); $('.left-side-bar-box').addClass('active'); }; function hideLeftSideBar(){ $('.left-side-bar-box').removeClass('active'); }; /* 메뉴 접히고 펼치기 */ $('.left-side-bar > .menu-1 ul > li').click(function(e){ //console.log("메뉴 클릭됨"); /* 만약 클릭된 메뉴에 엑티브 클래스가 있으면 */ if ( $(this).hasClass('active') ){ /* 클릭된 메뉴의 엑티브를 없앤다 */ $(this).removeClass('active'); } else { /* 클릭된 메뉴의 형제의 엑티브를 없앤다 */ $(this).siblings('.active').removeClass('active'); /* 클릭된 메뉴(지역)의 엑티브를 없앤다 */ $(this).find('.active').removeClass('active'); /* 클릭된 메뉴의 엑티브를 만든다 */ $(this).addClass('active'); } /* 클릭된 메뉴 안에 다른 메뉴를 클릭하면 위에있는 메뉴가 같이 클릭되는데 그것을 막아준다 */ e.stopPropagation(); }); /* 좌측 사이드바 배경을 클릭했을때 */ $('.left-side-bar-box').click(function(){ //console.log('배경클릭'); /* 토글 사이드바 버튼을 클릭한 효과를 만듬 */ $('.toggle-side-bar-btn').click(); }); /* 사이드바를 클릭할때 상위요소인 배경이 같이 클릭되어서 사이드바가 들어가버리기 때문에 그것을 막음 */ $('.left-side-bar').click(function(e){ e.stopPropagation(); });
'코딩 기록 > 코딩 소스 [HTML & CSS & JS]' 카테고리의 다른 글
자바스크립트 제이쿼리 header gnb 탑메뉴 예제 1 (PC & 모바일) (0) 2023.01.28 자바스크립트 제이쿼리 video 태그 동영상 재생 정지 상호작용 버튼 기능 (0) 2023.01.28 자바스크립트 제이쿼리 beforeAfter 이미지 slide 기능 예제 (0) 2023.01.28 jquery datetimepicker vs jquery-ui datepicker (날짜표시 기능 사용 예시) (2) 2023.01.28 자바스크립트 제이쿼리 아코디언 메뉴 기능 예제 (JavaScript & jQuery Accordion menu) (0) 2023.01.28 댓글