테스트 사이트 - 개발 중인 베타 버전입니다

제이쿼리,자바스크립트 초보 if문 질문합니다 채택완료

지지와태그 2년 전 조회 4,462

풀페이지로 홈페이지를 제작하고 있습니다.

section1에서는 햄버거메뉴를 누를시 header가 투명, 햄버거 버튼이 white만 출력이 되면되고

그 이외 section2부터는 햄버거 버튼을 안누를시 header가 white, 햄버거버튼이black

햄버거 버튼을 누를시 header가 투명, 햄버거버튼이 white 가 되면되는 조건으로 제이쿼리구문을 작성했는데

2페이지 이외에서 작동이 잘되다가 안되다가해서요 혹시 제가 구문을 잘못작성했다면 알려주세요.

</p>

<p>    <script></p>

<p>        $(document).ready(function() {</p>

<p>    // fullpage</p>

<p>    $('#fullpage').fullpage({    </p>

<p>        autoScrolling: true,</p>

<p>        scrollHorizontally: true,</p>

<p>        bigSectionsDestination: top,    </p>

<p>        anchors: ['sec1', 'sec2', 'sec3'],</p>

<p>        menu: '#menu',</p>

<p>        scrollingSpeed: 1000,</p>

<p>        scrollBar: false,</p>

<p>        onLeave: function(origin, destination, direction) {</p>

<p>        // 빠른전환으로 이벤트중복시 fullpage와 swiper전환시점 분리막기</p>

<p>        $('#fullpage').on('scroll touchmove mousewheel', function(event) {                    </p>

<p>            event.preventDefault();</p>

<p>            event.stopPropagation();</p>

<p>            return false;</p>

<p>        });</p>

<p>        swiper.mousewheel.disable();</p>

<p>        },</p>

<p>        afterLoad: function(anchorLink, index) {</p>

<p>           </p>

<p>            // TODO: 2022-12-16 페이지별 콜백</p>

<p>           </p>

<p>            var url='../images/logowe.png';</p>

<p>            if (index == 1){ // 1페이지</p>

<p>                var url='../images/logow.png';</p>

<p>                $('.gnb').find('a').css('color', '#fff');</p>

<p>                $('#header').css('background-color','transparent');</p>

<p>                $('.hamburger_menu span').css('background-color','white');</p>

<p>                $('.logo').html(`<img src='${url}'>`);</p>

<p>                $('.hamburger_menu').click(function() {</p>

<p>                var clicks = $(this).data('clicks');</p>

<p>                if (clicks) {$('#header').css('background-color','transparent');</p>

<p>                            $('.hamburger_menu span').css('background-color','white');</p>

<p>                // odd clicks</p>

<p>                } else {$('#header').css('background-color','transparent');</p>

<p>                $('.hamburger_menu span').css('background-color','white');</p>

<p>                // even clicks</p>

<p>                }</p>

<p>                });                </p>

<p>            } else {</p>

<p>               var url='../images/logowe.png';</p>

<p>                $('.gnb').find('a').css('color', '#000');</p>

<p>                $('#header').css('background-color','white','transition:0.1s');</p>

<p>                $('.hamburger_menu span').css('background-color','black');</p>

<p>                $('.logo').html(`<img src='${url}'>`);</p>

<p>                $('.hamburger_menu').click(function() {</p>

<p>                var clicks = $(this).data('clicks');</p>

<p>                if (clicks) {$('#header').css('background-color','white');</p>

<p>                            $('.hamburger_menu span').css('background-color','black');</p>

<p>                // odd clicks</p>

<p>                } else {$('#header').css('background-color','transparent');</p>

<p>                $('.hamburger_menu span').css('background-color','white');</p>

<p>                // even clicks</p>

<p>                }</p>

<p>                });                  </p>

<p>            }</p>

<p>            // 전환이 끝난후 이벤트풀기</p>

<p>            $('#fullpage').off('scroll mousewheel');</p>

<p>            if(!$(".fp-completely .swiper-wrapper").length > 0) $('#fullpage').off('touchmove'); // 모바일분기</p>

<p>            if(swiper) swiper.mousewheel.enable();</p>

<p>            if(!$(".sec1").hasClass("active")) $.fn.fullpage.setAllowScrolling(true); // 슬라이드 섹션을 벗어나면 휠풀어주기</p>

<p>            }</p>

<p>        });  </p>

<p>        // swiper</p>

<p>        var length = $(".sec1 .swiper-slide").length;</p>

<p>        var swiper = new Swiper('.swiper-container', {</p>

<p>        slidesPerView: 1,</p>

<p>        spaceBetween: 0,</p>

<p>        effect:'fade',</p>

<p>        freeMode: false,</p>

<p>        speed: 3000,</p>

<p>        // 3초마다 자동으로 슬라이드가 넘어갑니다. 1초 = 1000</p>

<p>        autoplay: {</p>

<p>        delay: 3000,</p>

<p>        },</p>

<p>        navigation : {</p>

<p>            nextEl : '.swiper-button-next', // 다음 버튼 클래스명</p>

<p>            prevEl : '.swiper-button-prev', // 이번 버튼 클래스명</p>

<p>        },</p>

<p>        pagination: {</p>

<p>        el: '.swiper-pagination',</p>

<p>        clickable: true,</p>

<p>        },</p>

<p>        mousewheel: false,</p>

<p>        on: {</p>

<p>        slideChange: function(){        </p>

<p>            var idx = this.activeIndex;</p>

<p>            // 처음과 마지막 슬라이드가 아닐경우 fullpage전환 막기</p>

<p>            if(this.activeIndex != 0 && idx != length) $.fn.fullpage.setAllowScrolling(false);</p>

<p>            if(length == 2 && idx == 0) $.fn.fullpage.setAllowScrolling(false) //슬라이드가 2개밖에 없을때</p>

<p>            // console.log('즉시 : ' + idx);</p>

<p>        },  </p>

<p>        slideChangeTransitionEnd: function(){</p>

<p>            var idx = this.activeIndex;</p>

<p>            // 처음과 마지막 슬라이드일 경우 fullpage전환 풀기</p>

<p>            if(idx == 0 || idx >= length-1) $.fn.fullpage.setAllowScrolling(true);</p>

<p>            // console.log('전환후 : ' + idx);    </p>

<p>        },</p>

<p>        touchMove: function(e) {        </p>

<p>            var startY = e.touches.startY;</p>

<p>            setTimeout(function(){</p>

<p>            if(startY > e.touches.currentY) swiper.slideNext();  </p>

<p>            else swiper.slidePrev();</p>

<p>            },100);        </p>

<p>        },</p>

<p>        },</p>

<p>    });            </p>

<p>    });</p>

<p>    </script></p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
2년 전

</p>

<p>} else {

    var url='../images/logowe.png';

    $('.gnb').find('a').css('color', '#000');

    $('#header').css('background-color','white','transition:0.1s');

    $('.hamburger_menu span').css('background-color','black');

    $('.logo').html(`<img src='${url}'>`);

    $('.hamburger_menu').click(function() {

    var clicks = $(this).data('clicks');

    if (clicks) {

        $('#header').css('background-color','transparent');

        $('.hamburger_menu span').css('background-color','white');

        // odd clicks

    } else {

        $('#header').css('background-color','white');

        $('.hamburger_menu span').css('background-color','black');

        // even clicks

    }

    });                        

}</p>

<p>

클릭에 반응하는 if문 구간이 반대로 되어 있어서 그런건 아닐까요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인