본문 바로가기
프로그램

jQuery를 사용하여 현재 파일에서 다른 파일로 이동한 후 해당 파일 내 특정 위치로 스크롤

by 다온다올과함께 2024. 10. 22.

 

 

 

jQuery를 사용하여 현재 파일에서 다른 파일로 이동한 후 해당 파일 내 특정 위치로 스크롤하려면 일반적인 방법으로는 앵커 태그를 사용하여 해결할 수 있습니다. 기본적으로 HTML의 id를 사용한 앵커 링크를 클릭하면 다른 페이지로 이동하고 해당 페이지에서 특정 위치로 바로 이동할 수 있습니다. 하지만 부드러운 스크롤 애니메이션을 유지하기 위해서는 새 페이지에서도 jQuery를 사용하여 해당 위치로 스크롤하도록 설정해야 합니다.

 

 

 

1. 기본 HTML 앵커 링크 방식

<!-- 현재 파일 (page1.html) -->
<a href="page2.html#section2">Go to Section 2 on Page 2</a>

 

 

 

 

2. 목표 파일에서 특정 위치로 부드럽게 이동 (예: page2.html)

이제, page2.html에 특정 위치로 부드럽게 이동하는 jQuery 코드를 추가할 수 있습니다.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Page 2</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        section {
            height: 600px; /* 각 섹션에 충분한 높이를 부여 */
            padding: 20px;
        }
        #section1 { background-color: lightblue; }
        #section2 { background-color: lightgreen; }
        #section3 { background-color: lightcoral; }
    </style>
</head>
<body>

    <section id="section1">
        <h2>Section 1</h2>
        <p>Content of section 1</p>
    </section>
    
    <section id="section2">
        <h2>Section 2</h2>
        <p>Content of section 2</p>
    </section>
    
    <section id="section3">
        <h2>Section 3</h2>
        <p>Content of section 3</p>
    </section>

    <script>
        $(document).ready(function() {
            // URL에서 앵커(#)가 있는지 확인하고 해당 위치로 부드럽게 스크롤
            if (window.location.hash) {
                var target = window.location.hash;
                $('html, body').animate({
                    scrollTop: $(target).offset().top
                }, 800); // 800ms 동안 부드럽게 스크롤
            }
        });
    </script>

</body>
</html>

 

 

설명

  1. page1.html
    • href="page2.html#section2"처럼 다른 파일로 이동한 후 그 파일의 특정 섹션(section2)으로 바로 이동하도록 링크를 만듭니다.
  2. page2.html
    • window.location.hash를 사용하여 URL에 포함된 앵커(#section2) 값을 확인합니다.
    • 만약 앵커가 존재한다면 해당 위치로 animate()를 사용하여 부드럽게 스크롤합니다.

요약

  • 사용자가 page1.html에서 링크를 클릭하면 page2.html로 이동하며, 이동한 후 해당 페이지의 #section2로 부드럽게 스크롤됩니다.
  • 이를 통해 여러 파일 간에 부드러운 스크롤 경험을 제공합니다.

 

 

 

 

 

#jQuery #html #부드럽게스크롤 #hash #animate() #특정위치로이동 #프로그래밍 #조금씩배워가는프로그래밍

 

 

 

 

 

반응형

댓글