본문 바로가기

IT 리뷰/블로그 SEO

웹사이트 마우스 스크롤 세로에서 가로 이동 - HTML CSS

반응형

웹사이트를 만들면서 요즘 트렌디한 사이트들을 관찰하면 어떤 기능들이 사용되는지 살펴보는 것은 정말 흥미로운 일입니다. 이런 사이트들은 휠 스크롤 및 다양한 스크롤 기능을 활용하여 사용자 경험을 향상시키고 있습니다. 웹사이트를 구상하고 디자인할 때 이러한 기능을 적용해보는 것은 창의적인 아이디어를 발전시키는 데 큰 도움이 될 것입니다.

웹사이트 마우스 스크롤 세로에서 가로 이동 - HTML CSS

요즘 가장 핫한 웹사이트 트렌드 중 하나는 마우스 스크롤 시 가로 스크롤링 기능을 활용한 사이트로서 티스토리 블로그나 워드프레스 등  웹사이트 블로그를 구상해볼 수 있으며 이러한 웹사이트의 가로 방향으로 스크롤하면서 콘텐츠를 탐색하는 것이 가능합니다.

먼저, 마우스 스크롤 시가로스크롤링을 구현하기 위해 필요한 기본 HTML 구조를 살펴보겠습니다. 아래는 간단한 HTML 코드 예시입니다.

<body>
    <div class="container">
        <div class="box">box0</div>
        <div class="box">box1</div>
        <div class="box">box2</div>
        <div class="box">box3</div>
    </div>
</body>

이 코드에서 .container는 가로로 스크롤되는 박스들을 감싸고 있습니다. 각각의 .box는 가로 스크롤의 한 섹션을 나타냅니다.

다음은 CSS 스타일링입니다.

<style>
    body { margin: 0;}
    
    .container {
        /* transition: all 0.5s; */
    }
    .box {
        /* 아래 두 줄은 제이쿼리 부분에서 box에 CSS를 주는 거 없을 때 필요  */
        /* float: left;
        width: calc(100% / 4); */
        height: 100vh;

        font-size: 100px;
        line-height: 100vh;
        text-align: center;

        border: 10px solid;
        box-sizing: border-box;

    }

</style>

여기서는 .box의 스타일을 정의하고, 섹션 간의 경계를 명확히 하기 위해 border를 사용하였습니다.

이제 jQuery를 사용하여 실제로 가로스크롤링을 구현하는 부분을 살펴보겠습니다.

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function() {
        var container = $(".container");
        var boxes = $(".box");
        var currentIndex = 0;

        // 휠 스크롤 이벤트 처리
        $(window).on("wheel", function(event) {
            event.preventDefault();
            var delta = event.originalEvent.deltaY;

            if (delta > 0 && currentIndex < boxes.length - 1) {
                currentIndex++;
            } else if (delta < 0 && currentIndex > 0) {
                currentIndex--;
            }

            var scrollTo = currentIndex * $(window).width();
            container.animate({ scrollLeft: scrollTo }, 500);
        });

        // 브라우저 리사이즈 처리
        $(window).on("resize", function() {
            var scrollTo = currentIndex * $(window).width();
            container.scrollLeft(scrollTo);
        });
    });
</script>

위의 JavaScript 코드는 다음과 같은 주요 기능을 수행합니다.

휠 스크롤 이벤트를 감지하고 사용자가 휠을 아래로 돌리면 다음 섹션으로 이동하고, 위로 돌리면 이전 섹션으로 이동할 수 잇으며 현재 섹션의 인덱스를 추적하고, 이에 따라 스크롤 위치를 조정합니다.

그리고 인터넷 브라우저 크기를 조정할 때, 현재 섹션을 유지하기 위해 리사이즈 이벤트를 처리하며 이러한 코드를 사용하면 웹사이트에 가로스크롤링 기능을 추가할 수 있습니다. 

참고 : [IT 리뷰/윈도우 Tip] - 마우스 휠 스크롤 안될 때 오류 해결방법

 

반응형