일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- KMP알고리즘
- 문자열
- 연결리스트 정렬
- 다이나믹 프로그래밍
- 유클리드 호제법
- 큰 수 연산
- 실패함수
- 정렬
- 별 찍기
- 자료 구조
- 해시를 사용한 집합과 맵
- 연결리스트 중복제거
- 이분 탐색
- 프로그래머스
- 조합론
- 사칙연산
- 시뮬레이션
- 브루트포스 알고리즘
- LeetCode 83 c언어
- 문자열제곱
- Queue
- 재귀
- LeetCode 83번
- 임의 정밀도 / 큰 수 연산
- 정수론
- 큐
- 스택
- LeetCode Remove Duplicates from Sorted List in c
- 수학
- 구현
- Today
- Total
hahn
사이드바 드롭다운 박스 고정하기 본문
<div class="sidebar">
<ul class="sidebar-menu">
<li class="submenu-parent-li">
<a class="submenu-parent">
<span>드롭다운</span>
</a>
<ul class="sidebar-submenu" style="display: none;">
<li>사이드바</li>
<li>고정하기</li>
<li>ahnstu</li>
</ul>
</li>
</ul>
</div>
<span>아무것도 없으면 허전할 것 같아서 추가해둔 코드 참고만</span>
예를 들어 위와 같은 형태의 사이드바가 있다면
<a class="submenu-parent"> 나 <li class="submenu-parent-li">에
클릭 이벤트를 걸어 class에 active(예시)를 추가하거나 삭제하여
<ul class="sidebar-submenu" style="display: block;"> 중 display를
none이나 block으로 바꿔 화면에 보이거나 안 보이게 할 것이다.
<div class="sidebar">
<ul class="sidebar-menu">
<li class="submenu-parent-li">
<a class="submenu-parent active">
<span>드롭다운</span>
</a>
<ul class="sidebar-submenu" style="display: display;">
<li>사이드바</li>
<li>고정하기</li>
<li>ahnstu</li>
</ul>
</li>
</ul>
</div>
<span>아무것도 없으면 허전할 것 같아서 추가해둔 코드 참고만</span>
일단 default로는 none으로 표시되어
사용자가 화면 전환 시 사이드바는 닫혀있는 상태로
표시될 건데 이를 UX 측면에서 보면 되게 불편하지 않을 수가 없다.
그래서 이를 해결하기 위해서 방법을 생각해 봤다.
일단 펼쳐야 할 대상을 식별해야 하기 때문에
어떤 걸로 식별할 수 있을까 생각해 봤다.
나는 프로젝트를 진행하고 있지는 않지만
학원에서는 스프링으로 프로젝트를 진행하고 있다.
스프링은 controller에서 어떤 화면을 보여줄지 결정하는데
window.location.pathname 부분이 이를 결정한다.
그래서 이를 substring하여 첫 번째 /를 제외하고 사용하면
되게 좋을 것 같아 이를 선택했다.
<div class="sidebar">
<ul class="sidebar-menu">
<li class="submenu-parent-li">
<a class="submenu-parent" href="@{fixed}"
<span>드롭다운</span>
</a>
<ul class="sidebar-submenu fixed" style="display: none;">
<li>사이드바</li>
<li>고정하기</li>
<li>ahnstu</li>
</ul>
</li>
</ul>
</div>
<span>아무것도 없으면 허전할 것 같아서 추가해둔 코드 참고만</span>
그래서 이런 식으로 어느 한 부분을 잡아서 class에 pathname을 추가해 준다.
이제 이를 jquery나 javascript로 pathname을 포함하는 클래스를 찾는다.
이후 부모, 자식, 형제 객체 중 class에 active(예시)를 추가해야 하는 태그를 찾아서
추가해 주면 끝이다.
인터셉터로 request.getRequestURI() 사용해서 모델에 추가한 뒤,
이를 이용하면 좋은 식별자로서
사이드바도 해결하고 좀 더 활용도 좋을 것 같은데
이건 아직 안 해봤다. 근데 이는 화면 설계할 때 미리 정해두고 해야 편할 것 같다.
위 코드 그냥 예시로 작성해둔거니 흐름만 파악하자.
'개발 공부 > HTML' 카테고리의 다른 글
16일차 include,session,location (0) | 2021.04.07 |
---|---|
14~15일차 html 가짜화면 만들기 (0) | 2021.04.07 |
5일차 회원가입 폼(div로 만들어보기) (0) | 2021.04.07 |
4일차 html 실습(h, div, a, img, label, input, form 태그, 회원가입 폼) (0) | 2021.04.07 |
3일차 UI 이해, HTML (0) | 2021.04.07 |