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

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


     $('body').children().each(function() {
     $('h2, h3, h4, h5, h6').each(function() {
        var $el = $(this);
 
        // 목차 지나기
         if (!passedTOC) {
         if (!passedTOC) {
             if ($el.attr('id') === 'toc') {
             if ($(this).prevAll('#toc').length > 0) {
                 passedTOC = true;
                 passedTOC = true;
            } else {
                return;
             }
             }
            return; // 아직 목차 통과 전이면 스킵
         }
         }


         // 목차 지난 후 제목 찾기
         var tagName = this.tagName.toLowerCase();
        if ($el.is('h2, h3, h4, h5, h6')) {
        var level = parseInt(tagName.substring(1)) - 2; // h2 → 0, h3 → 1, etc.
            var numberLink = $('<a>')
                .attr('href', '#toc')
                .text(count + '. ')
                .addClass('mw-link') // 목차 숫자랑 똑같은 파란색 링크
                .css({
                    'text-decoration': 'none',
                    'margin-right': '5px'
                });


             $el.prepend(numberLink);
        counters[level]++;
             count++;
        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')
            .text(numbering.join('.') + '. ')
            .addClass('mw-link') // 목차 파란색 링크
            .css({
                'text-decoration': 'none',
                'margin-right': '5px'
            });
        $(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');
});
});

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