제이쿼리,자바스크립트 초보 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문 구간이 반대로 되어 있어서 그런건 아닐까요?
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인