λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Lect & Tip/javascript, jQuery

Jquery μŠ€μ™€μ΄νΌ μŠ¬λΌμ΄λ” ν”ŒλŸ¬κ·ΈμΈ idangerous.swiper.js pagination μŠ€νƒ€μΌ λ³€κ²½ν•˜κΈ°

by 낯선곡간2019 2023. 9. 7.

λͺ©μ°¨

    Jquery μŠ€μ™€μ΄νΌ μŠ¬λΌμ΄λ” ν”ŒλŸ¬κ·ΈμΈ idangerous.swiper.js pagination μŠ€νƒ€μΌ λ³€κ²½ν•˜κΈ°

    μ„œλ‘ 

    λͺ¨λ°”일 μ›Ή κ°œλ°œμ—μ„œ μŠ¬λΌμ΄λ“œ κΈ°λŠ₯은 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. idangerous.swiper.js ν”ŒλŸ¬κ·ΈμΈμ€ λͺ¨λ°”μΌμ—μ„œ ν„°μΉ˜ 제슀처λ₯Ό ν™œμš©ν•˜μ—¬ μŠ¬λΌμ΄λ“œλ₯Ό νŽΈλ¦¬ν•˜κ²Œ κ΅¬ν˜„ν•  수 μžˆλŠ” ν›Œλ₯­ν•œ 도ꡬ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 ν”ŒλŸ¬κ·ΈμΈμ˜ νŽ˜μ΄μ§• κΈ°λŠ₯은 μˆ«μžλ‚˜ 뢈릿 ν˜•νƒœλ‘œλ§Œ μ œκ³΅λ˜μ–΄, ν…μŠ€νŠΈ λ¬Έμž₯으둜 νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ ν‘œν˜„ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

    이에 λŒ€μ‘ν•˜κΈ° μœ„ν•΄ ν…μŠ€νŠΈ λ¬Έμž₯을 νŽ˜μ΄μ§• μ²˜λ¦¬ν•˜λŠ” 꼼수λ₯Ό μ‚¬μš©ν•˜λ € ν–ˆμœΌλ©°, μ²˜μŒμ—λŠ” λŒ€λž΅ 6~8개의 νŽ˜μ΄μ§€λ₯Ό ν‘œμ‹œν•˜λ„λ‘ μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ””μžμ΄λ„ˆμ˜ μš”μ²­μœΌλ‘œ 10개의 νŽ˜μ΄μ§€κ°€ λ“±λ‘λ˜μ—ˆμ„ λ•Œ 초반 6개만 보이고, λ‚˜λ¨Έμ§€λŠ” λ‹€μŒ νŽ˜μ΄μ§€μ—μ„œ 보이도둝 μ²˜λ¦¬ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 처리λ₯Ό ν•˜λ €λ©΄ ν”ŒλŸ¬κ·ΈμΈμ˜ μ½”μ–΄λ₯Ό λ³€κ²½ν•΄μ•Ό ν•˜λŠ”λ°, μ΄λŠ” μ΅œμ‹  μ—…λ°μ΄νŠΈλ₯Ό λ°›λŠ”λ° 어렀움을 κ²ͺ을 수 μžˆμŠ΅λ‹ˆλ‹€.

    κ·Έλž˜μ„œ μ €λŠ” setInterval ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ μ§€μ†μ μœΌλ‘œ μ²΄ν¬ν•˜κ³ , swiper-pagination-switch의 인덱슀λ₯Ό μ‚¬μš©ν•˜μ—¬ 6개 (λ˜λŠ” 7개)λ₯Ό κΈ°μ€€μœΌλ‘œ μ•žμͺ½μ—λŠ” "vpage1" 클래슀λ₯Ό λΆ€μ—¬ν•˜κ³ , λ’€μͺ½μ—λŠ” "vPage2"λ₯Ό λΆ€μ—¬ν•˜λŠ” 꼼수λ₯Ό μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 2개의 νŽ˜μ΄μ§€μ™€ μœ μ‚¬ν•œ 효과λ₯Ό κ΅¬ν˜„ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

    var tmpNo = 0;
    $('.popupZone .swiper-slide a').each(function(index, element) {
        var tmpNo2 = tmpNo + 1;
        var tmpTxt = '<span class="popNo mobileHide">' + tmpNo2 + '</span><span class="popTxt">' + $(this).attr('title') + "</span>";
        $('.pagination5 > a:eq(' + tmpNo + ')').html(tmpTxt);
        $('.pagination5 > a').attr('href', '#link');
        tmpNo++;
    });
    
    $('.popupZoneCnt .totalCnt').text($('.pagination5 > a').length);
    
    setInterval(function() {
        checkActive(6);
    }, 200);
    
    function checkActive(e) {
        var p2end = $('.swiper-pagination-switch').length;
        $('.swiper-pagination-switch').slice(0, e).addClass('vPage1');
        $('.swiper-pagination-switch').slice(e, p2end).addClass('vPage2');
        if (parseInt($('.swiper-active-switch .popNo').text()) > e) {
            $('.vPage2').show();
            $('.vPage1').hide();
        } else {
            $('.vPage2').hide();
            $('.vPage1').show();
        }
    }

    λ³Έλ¬Έ

    이제 더 μžμ„Ένžˆ μ„€λͺ…ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. idangerous.swiper.js ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜λ©΄ λͺ¨λ°”일 μ›Ή νŽ˜μ΄μ§€μ—μ„œ κ°„νŽΈν•˜κ²Œ μŠ¬λΌμ΄λ“œ κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 ν”ŒλŸ¬κ·ΈμΈμ—μ„œ μ œκ³΅ν•˜λŠ” νŽ˜μ΄μ§€λ„€μ΄μ…˜ κΈ°λŠ₯은 μˆ«μžλ‚˜ 뢈릿 ν˜•νƒœλ‘œλ§Œ ν‘œν˜„λ˜μ–΄, μ›ν•˜λŠ” ν…μŠ€νŠΈ λ¬Έμž₯으둜 λ³€κ²½ν•˜κΈ° μ–΄λ €μš΄ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

    ν”ŒλŸ¬κ·ΈμΈμ˜ κΈ°λŠ₯을 κ±΄λ“œλ¦¬μ§€ μ•Šκ³  μ›ν•˜λŠ” μŠ€νƒ€μΌλ‘œ νŽ˜μ΄μ§•μ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ λͺ‡ 가지 꼼수λ₯Ό μ‚¬μš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. λ¨Όμ €, 각 μŠ¬λΌμ΄λ“œ μš”μ†Œμ˜ μžμ‹μΈ <a> νƒœκ·Έμ— λŒ€ν•œ 정보λ₯Ό κ°€μ Έμ™€μ„œ ν•΄λ‹Ή νŽ˜μ΄μ§€μ˜ 제λͺ©μ„ μΆ”μΆœν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 ν…μŠ€νŠΈ λ¬Έμž₯으둜 된 νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ κ΅¬μ„±ν•©λ‹ˆλ‹€.

    var tmpNo = 0;
    $('.popupZone .swiper-slide a').each(function(index, element) {
        var tmpNo2 = tmpNo + 1;
        var tmpTxt = '<span class="popNo mobileHide">' + tmpNo2 + '</span><span class="popTxt">' + $(this).attr('title') + "</span>";
        $('.pagination5 > a:eq(' + tmpNo + ')').html(tmpTxt);
        $('.pagination5 > a').attr('href', '#link');
        tmpNo++;
    });

    λ˜ν•œ, νŽ˜μ΄μ§€λ„€μ΄μ…˜μ˜ 총 개수λ₯Ό ν‘œμ‹œν•˜κΈ° μœ„ν•΄ μ•„λž˜μ™€ 같은 μ½”λ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

    $('.popupZoneCnt .totalCnt').text($('.pagination5 > a').length);

    νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ λ™μ μœΌλ‘œ λ³€κ²½ν•˜κΈ° μœ„ν•΄ setInterval ν•¨μˆ˜λ₯Ό ν™œμš©ν•©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ μ§€μ†μ μœΌλ‘œ μ²΄ν¬ν•˜κ³ , 6개 μ΄μƒμ˜ νŽ˜μ΄μ§€κ°€ ν™œμ„±ν™”λ˜μ—ˆμ„ λ•Œ λ‹€μŒ νŽ˜μ΄μ§€μ˜ νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ 보이게 ν•˜κ³ , 그렇지 μ•ŠμœΌλ©΄ 이전 νŽ˜μ΄μ§€μ˜ νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ 보이게 ν•©λ‹ˆλ‹€.

    setInterval(function() {
        checkActive(6);
    }, 200);
    
    function checkActive(e) {
        var p2end = $('.swiper-pagination-switch').length;
        $('.swiper-pagination-switch').slice(0, e).addClass('vPage1');
        $('.swiper-pagination-switch').slice(e, p2end).addClass('vPage2');
        if (parseInt($('.swiper-active-switch .popNo').text()) > e) {
            $('.vPage2').show();
            $('.vPage1').hide();
        } else {
            $('.vPage2').hide();
            $('.vPage1').show();
        }
    }

    κ²°λ‘ 

    μ΄λ ‡κ²Œν•˜μ—¬ idangerous.swiper.js ν”ŒλŸ¬κ·ΈμΈμ˜ νŽ˜μ΄μ§€λ„€μ΄μ…˜ μŠ€νƒ€μΌμ„ ν…μŠ€νŠΈ λ¬Έμž₯으둜 λ³€κ²½ν•˜κ³ , νŽ˜μ΄μ§€ μˆ˜μ— 따라 λ™μ μœΌλ‘œ μ‘°μ ˆν•  수 μžˆλŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 꼼수λ₯Ό μ‚¬μš©ν•˜λ©΄ ν”ŒλŸ¬κ·ΈμΈμ˜ μ½”μ–΄λ₯Ό λ³€κ²½ν•˜μ§€ μ•Šκ³ λ„ μ›ν•˜λŠ” μŠ€νƒ€μΌμ„ μ μš©ν•  수 있으며, 졜

    μ‹  μ—…λ°μ΄νŠΈλ₯Ό 받을 λ•Œμ—λ„ λ¬Έμ œκ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    상세 μ„€λͺ…

    μœ„μ—μ„œ μ„€λͺ…ν•œ μ½”λ“œμ™€ κΈ°λŠ₯에 λŒ€ν•œ μƒμ„Έν•œ μ„€λͺ…μž…λ‹ˆλ‹€.

    μ„œλ‘ 

    • λͺ¨λ°”일 μ›Ή κ°œλ°œμ—μ„œ μŠ¬λΌμ΄λ“œ κΈ°λŠ₯의 μ€‘μš”μ„±.
    • idangerous.swiper.js ν”ŒλŸ¬κ·ΈμΈ μ†Œκ°œ 및 νŠΉμ§•.

    ν…μŠ€νŠΈ λ¬Έμž₯ νŽ˜μ΄μ§• 처리

    • ν”ŒλŸ¬κ·ΈμΈμ—μ„œ μ œκ³΅ν•˜λŠ” νŽ˜μ΄μ§€λ„€μ΄μ…˜μ˜ ν•œκ³„.
    • ν…μŠ€νŠΈ λ¬Έμž₯으둜 νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ 꼼수 μ‚¬μš©.

    μ½”λ“œ μ„€λͺ…

    • 각 μ½”λ“œ 라인의 μ—­ν• κ³Ό μž‘λ™ 방식에 λŒ€ν•œ 상세 μ„€λͺ….

    κ²°λ‘ 

    • idangerous.swiper.js ν”ŒλŸ¬κ·ΈμΈμ„ ν™œμš©ν•˜μ—¬ ν…μŠ€νŠΈ λ¬Έμž₯ ν˜•νƒœμ˜ νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ κ΅¬ν˜„ν•˜λŠ” 방법.
    • ν”ŒλŸ¬κ·ΈμΈ μ½”μ–΄ 변경을 ν”Όν•˜κ³ , μ΅œμ‹  μ—…λ°μ΄νŠΈλ₯Ό 받을 수 μžˆλŠ” μž₯점.

    포슀트 μš”μ•½

    이 λΈ”λ‘œκ·Έ ν¬μŠ€νŒ…μ—μ„œλŠ” idangerous.swiper.js ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜μ—¬ λͺ¨λ°”일 μ›Ή νŽ˜μ΄μ§€μ—μ„œ ν…μŠ€νŠΈ λ¬Έμž₯ ν˜•νƒœμ˜ νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ κ΅¬ν˜„ν•˜λŠ” 방법을 μƒμ„Ένžˆ μ„€λͺ…ν–ˆμŠ΅λ‹ˆλ‹€. νŽ˜μ΄μ§€λ„€μ΄μ…˜μ„ ν…μŠ€νŠΈ λ¬Έμž₯으둜 ν‘œν˜„ν•˜κΈ° μœ„ν•΄ λͺ‡ 가지 꼼수λ₯Ό μ‚¬μš©ν•˜μ˜€κ³ , ν”ŒλŸ¬κ·ΈμΈ μ½”μ–΄λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠμœΌλ©΄μ„œ μ›ν•˜λŠ” μŠ€νƒ€μΌμ„ μ μš©ν•˜λŠ” 방법을 μ œμ‹œν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 λͺ¨λ°”일 μ›Ή νŽ˜μ΄μ§€μ˜ μ‚¬μš©μž κ²½ν—˜μ„ κ°œμ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

    λ°˜μ‘ν˜•

    λŒ“κΈ€