미디어위키:Common.js: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
 
(같은 사용자의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
$(document).ready(function() {
$(document).ready(function() {
     var count = 1;
     var counters = [0, 0, 0, 0, 0]; // h2~h6 카운터


    // 목차(div#toc) 다음부터 시작
     var passedTOC = false;
     var tocSeen = false;


     $('body').find('h2, h3, h4, h5, h6').each(function() {
     $('h2, h3, h4, h5, h6').each(function() {
         var $this = $(this);
        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 = [];
         if (!tocSeen) {
         for (var i = 0; i <= level; i++) {
             if ($this.prevAll('#toc').length > 0 || $this.parents('#toc').length > 0) {
             if (counters[i] !== 0) {
                 // 아직 목차 구간이다 => 패스
                 numbering.push(counters[i]);
                return;
             }
             }
            tocSeen = true;
         }
         }


         var backLink = $('<a>')
         var numberLink = $('<a>')
             .attr('href', '#toc')
             .attr('href', '#toc')
             .text(count + '. ')
             .text(numbering.join('.') + '. ')
             .addClass('mw-link')
             .addClass('mw-link') // 목차 파란색 링크
             .css({
             .css({
                 'text-decoration': 'none',
                 'text-decoration': 'none',
26번째 줄: 37번째 줄:
             });
             });


         $this.prepend(backLink);
         $(this).prepend(numberLink);
        count++;
     });
     });
});
$(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');
});
});

2025년 4월 26일 (토) 22:14 기준 최신판