편집 요약 없음 |
편집 요약 없음 |
||
(같은 사용자의 중간 판 10개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
$(document).ready(function() { | $(document).ready(function() { | ||
var | var counters = [0, 0, 0, 0, 0]; // h2~h6 카운터 | ||
var passedTOC = false; | |||
// | $('h2, h3, h4, h5, h6').each(function() { | ||
var | if (!passedTOC) { | ||
if ($(this).prevAll('#toc').length > 0) { | |||
passedTOC = true; | |||
} else { | |||
return; | |||
} | |||
} | |||
var tagName = this.tagName.toLowerCase(); | |||
var level = parseInt(tagName.substring(1)) - 2; // h2 → 0, h3 → 1, etc. | |||
counters[level]++; | |||
for (var i = level + 1; i < counters.length; i++) { | |||
counters[i] = 0; // 하위 레벨 초기화 | |||
} | |||
var numbering = []; | |||
for (var i = 0; i <= level; i++) { | |||
if (counters[i] !== 0) { | |||
numbering.push(counters[i]); | |||
} | |||
} | |||
var numberLink = $('<a>') | |||
.attr('href', '#toc') | .attr('href', '#toc') | ||
.text( | .text(numbering.join('.') + '. ') | ||
.addClass('mw-link') | .addClass('mw-link') // 목차 파란색 링크 | ||
.css({ | .css({ | ||
'text-decoration': 'none', | 'text-decoration': 'none', | ||
17번째 줄: | 37번째 줄: | ||
}); | }); | ||
$this.prepend( | $(this).prepend(numberLink); | ||
}); | |||
}); | |||
$(document).ready(function() { | |||
// 처음부터 전부 펼쳐진 상태로 시작 | |||
$('h2, h3, h4, h5, h6').each(function() { | |||
var content = $(this).nextUntil('h2, h3, h4, h5, h6'); | |||
content.show(); // 처음에는 다 펼쳐져 있음 | |||
}); | }); | ||
// 소제목 클릭 시 | |||
$('h2, h3, h4, h5, h6').click(function() { | |||
// 클릭한 제목의 바로 아래 내용(주로 p, div 등)을 선택 | |||
var content = $(this).nextUntil('h2, h3, h4, h5, h6'); | |||
// 애니메이션 없이 즉시 펼쳐지거나 접힘 | |||
content.toggle(); // 애니메이션 없이 바로 토글 | |||
// 접힌 소제목의 투명도 낮추기 | |||
if (content.is(':visible')) { | |||
$(this).css('opacity', '1'); // 펼쳐졌을 때 불투명하게 | |||
} else { | |||
$(this).css('opacity', '0.6'); // 접혔을 때 투명하게 | |||
} | |||
}); | |||
// 클릭할 수 있도록 커서 스타일 변경 | |||
$('h2, h3, h4, h5, h6').css('cursor', 'pointer'); | |||
}); | }); |