본문 들어가기 전에 반드시 jQuery를 넣어주세요
아래 스크립트를 스킨편집(HTML)의 </head> 바로 앞에 추가합니다
<script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
네이버 블로그를 하다가 티스토리로 막 넘어왔을 때,
불편하다고 느꼈던 점 중 하나가 바로 카테고리를 여닫을 수 없다는 점입니다.
카테고리 관리에서는 여닫기가 가능하지만, 그건 관리자 페이지에서 편의를 위해 작동하는 부분이니까요…
다만, 티스토리에서는 여닫을 수 있는 카테고리를 아예 만들 수 없느냐, 하면… 그건 아닙니다.
네이버 블로그와는 다르게, 티스토리는 스킨의 html 등을 조정할 수 있으니까요!
덕분에 제 티스토리의 카테고리 중 하나도 위 움짤처럼 여닫을 수 있답니다.
그렇다면 이러한 카테고리는 어떻게 만들까요?
여닫는 카테고리를 만들기 위해 알아야 할 jQuery 메서드는 .toggle()입니다.
이 메서드는 선택한 요소가 보이면 보이지 않게, 보이지 않는다면 보이게 하는 역할을 합니다.
그러니… 여닫고 싶은 카테고리에 .toggle()을 적용시키면 아주 간단하게 작업을 끝낼 수 있겠죠?
<s_sidebar_element>
<div class="category">
<!-- 카테고리 -->
<h3>카테고리</h3>
</div>
</s_sidebar_element>
(사용 중인 스킨에 따라 형태에 차이가 있을 수 있습니다.)
그런데 스킨편집(html 편집)에서 카테고리 부분을 보면, 치환자가 덜렁 놓여 있습니다.
이 상태로는 여닫고 싶은 카테고리를 골라낼 수 없기 때문에, 어렵지 않은 2가지 작업이 필요합니다.
① 해당 작업을 하기 위해서 여닫고 싶은 카테고리가 몇 번째 카테고리인지 확인합니다.
② 스킨편집의 </s_t3> 바로 앞에 아래 스크립트를 붙여넣기 해줍니다.
<script>
$(function(){
$('.category_list li:nth-child(n) > a').addClass('원하는클래스명');
$('.category_list .원하는클래스명 .sub_category_list a').removeClass('원하는클래스명');
})
</script>
n = 해당 카테고리는 몇 번째?
1) 위 작업이 끝났다면, 해당 카테고리에 여닫기 기능을 해줄 버튼을 삽입합니다.
스킨편집(파일 업로드)에 아래 파일을 추가해도 되고, 커스텀해도 OK
<s_sidebar_element>
<div class="category">
<!-- 카테고리 -->
<h3>카테고리</h3>
<div class="OCbtn">
<img alt="OP" src="./images/ico_f_open_l.gif" />
<img alt="CL" src="./images/ico_f_closed_l.gif" />
</div>
</div>
</s_sidebar_element>
※ 커스텀했을 경우 이미지 태그의 src를 변경해주어야 합니다.
2) 사전 작업에서 추가했던 스크립트 안에 아래 스크립트를 추가합니다.
$('.OCbtn').insertAfter('.원하는클래스명');
<script>
$(function(){
$('.category_list li:nth-child(n) > a').addClass('원하는클래스명');
$('.category_list .원하는클래스명 .sub_category_list a').removeClass('원하는클래스명');
$('.OCbtn').insertAfter('.원하는클래스명 > a');
})
</script>
↓ 사전 작업의 n값이 2일 때, 위 스크립트를 추가하고 난 뒤의 결과물 ↓
3) 여닫기 버튼과 여닫고 싶은 카테고리의 하위 카테고리에 .toggle() 메서드 추가하고,
해당 메서드를 포함하는 함수를 .click() 메서드를 이용하여 사전 작업에 추가한 스크립트에 넣어줍니다.
$('.OCbtn').click(function(){
$('.OCbtn img').toggle(); $('.원하는클래스명 .sub_category_list').toggle(); });
<script>
$(function(){
$('.category_list li:nth-child(n) > a').addClass('원하는클래스명');
$('.category_list .원하는클래스명 .sub_category_list a').removeClass('원하는클래스명');
$('.OCbtn').insertAfter('.원하는클래스명 > a');
$('.OCbtn').click(function(){
$('.OCbtn img').toggle();
$('.원하는클래스명 .sub_category_list').toggle();
});
})
</script>
4) 마지막으로 보기 좋게 CSS 디자인하면 끝!
아래 CSS는 예시로, 스킨에 따라 커스텀이 필요할 수 있습니다.
.OCbtn{
display: inline-block;
margin-left: 5px;
}
.OCbtn CL{
display: none;
}
.원하는클래스명 .sub_category_list{
display: none;
}
↓ 사전 작업의 n값이 2일 때, 모든 과정을 완료한 뒤의 결과물 ↓
'기타' 카테고리의 다른 글
티스토리 Iframe 관련 애로사항 해결법 (0) | 2023.04.24 |
---|---|
티스토리 카테고리 별 디자인 하기 (with jQuery) (0) | 2023.04.24 |
2023 봄 여행 기록 2 (0) | 2023.03.20 |
2023 봄 여행 기록 1 (0) | 2023.03.06 |
티스토리 블로그 : 위로 올라가는 버튼 만들기 (0) | 2022.04.12 |
스파이더맨 노 웨이 홈 후기 (0) | 2021.12.15 |
프랑켄 동빅&카앙 후기 (0) | 2021.12.09 |
함키 청춘 게이 알오물 pdf (0) | 2020.02.18 |
댓글