2026, 새로운 도약을 시작합니다.

모바일 스와이프 메뉴(가로 스크롤 메뉴) 도와주세요ㅠㅠ 채택완료

모바일 스와이프 메뉴 (가로 스크롤 메뉴)를 적용했습니다.

http://test.pushnews.io/?device=mobile

위 사이트에 적용했는데..

1번째에서 3번째 메뉴까지는 현재창에서 메뉴를 클릭 > 선택한 메뉴가 보이는데..

5번째, 6번째 메뉴 선택 시...

페이지 이동 및 메뉴 선택까지는 되는데...

화면에서 메뉴 부분이 보이질 않네요ㅠㅠㅠ

sir 모바일 사이트처럼 선택한 메뉴가 보여졌으면 좋겠는데..

이 부분은 어떻게 수정을 해줘야하는 걸까요...??

지금 있는 것도 

코드펜 소스 응용해서 적용한 부분이라서 

아시는 분 자세한 답변 좀 부탁드릴게요...!!!

2049603760_1579537725.5338.png

head.php 파일 중 해당 부분

Copy

적용한 js 파일

Copy


var SETTINGS = {

    navBarTravelling: false,

    navBarTravelDirection: "",

     navBarTravelDistance: 150

}

 

var colours = {

    0: "#ce141c",

    1: "#ce141c",

    2: "#ce141c",

    3: "#ce141c",

    4: "#ce141c",

    5: "#ce141c",

    6: "#ce141c",

    7: "#ce141c",

    8: "#ce141c",

    9: "#ce141c",

    10: "#00B27A",

    11: "#996B3D",

    12: "#CC7014",

    13: "#40FF8C",

    14: "#FF3400",

    15: "#ECBB5E",

    16: "#ECBB0C",

    17: "#B9D912",

    18: "#253A93",

    19: "#125FB9",

}

 

document.documentElement.classList.remove("no-js");

document.documentElement.classList.add("js");

 

// Out advancer buttons

var pnAdvancerLeft = document.getElementById("pnAdvancerLeft");

var pnAdvancerRight = document.getElementById("pnAdvancerRight");

// the indicator

var pnIndicator = document.getElementById("pnIndicator");

 

var pnProductNav = document.getElementById("pnProductNav");

var pnProductNavContents = document.getElementById("pnProductNavContents");

 

pnProductNav.setAttribute("data-overflowing", determineOverflow(pnProductNavContents, pnProductNav));

 

// Set the indicator

moveIndicator(pnProductNav.querySelector("[aria-selected=\"true\"]"), colours[0]);

 

// Handle the scroll of the horizontal container

var last_known_scroll_position = 0;

var ticking = false;

 

function doSomething(scroll_pos) {

    pnProductNav.setAttribute("data-overflowing", determineOverflow(pnProductNavContents, pnProductNav));

}

 

pnProductNav.addEventListener("scroll", function() {

    last_known_scroll_position = window.scrollY;

    if (!ticking) {

        window.requestAnimationFrame(function() {

            doSomething(last_known_scroll_position);

            ticking = false;

        });

    }

    ticking = true;

});



 

pnAdvancerLeft.addEventListener("click", function() {

    // If in the middle of a move return

    if (SETTINGS.navBarTravelling === true) {

        return;

    }

    // If we have content overflowing both sides or on the left

    if (determineOverflow(pnProductNavContents, pnProductNav) === "left" || determineOverflow(pnProductNavContents, pnProductNav) === "both") {

        // Find how far this panel has been scrolled

        var availableScrollLeft = pnProductNav.scrollLeft;

        // If the space available is less than two lots of our desired distance, just move the whole amount

        // otherwise, move by the amount in the settings

        if (availableScrollLeft 

새로고침(페이지 이동)이 아닐 때에는

선택한 메뉴와 위치 그대로 보여지는데 ..

새로고침(페이지 이동)을 하니깐...

스크롤 포지션 값이 초기화가 되버려요ㅠㅠ

위 js 소스 중에서

Copy


if (containerMetricsLeft > contentMetricsLeft && containerMetricsRight 

이 부분인 거 같아서 이것저것 해봤는데..

바뀌질 않네요ㅠㅠㅠ

아시는 분 계시면 꼭 좀 도와주세요ㅠㅠ

혹시나 다른 sir 모바일 사이트와 같은메뉴 형식 참고 소스가 있다면

공유 부탁드려요...!!

답변 1개

실제 사이트 접속시 캡쳐 이미지와 다른 내용이네요...

해결하신건가봐요~

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

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

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

로그인
🐛 버그신고