본문 바로가기

HTML 예제

무한 스크롤: 스크롤할 때마다 새로운 내용을 불러와 보여주는 기능

반응형

무한 스크롤(infinite scroll)은 웹 페이지에 새로운 내용을 동적으로 불러와 보여주는 기능입니다. 사용자가 스크롤을 아래로 내릴 때마다 추가 콘텐츠가 자동으로 로드되어 화면에 표시됩니다. 이를 위해 JavaScript와 AJAX(Asynchronous JavaScript and XML)를 사용합니다. 아래는 단계별로 무한 스크롤을 구현하는 예제 코드와 설명입니다.

1. HTML 파일 생성하기

HTML 파일을 생성합니다. 이 예제에서는 간단한 목록을 생성하고 이 목록을 무한 스크롤로 확장합니다. 파일을 "index.html"로 저장하세요.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css">
    <script src="script.js"></script>
    <title>무한 스크롤 예제</title>
</head>
<body>
    <div class="container" id="container">
        <!-- 초기 목록 아이템 -->
        <div class="item">아이템 1</div>
        <div class="item">아이템 2</div>
        <!-- 새로운 아이템이 여기에 추가될 것입니다 -->
    </div>
</body>
</html>

 


2. CSS 스타일 시트 생성하기

스타일을 정의하는 CSS 파일을 생성합니다. 이 파일을 "styles.css"로 저장하세요.

/* styles.css */
body {
    font-family: Arial, sans-serif;
}

.container {
    width: 80%;
    margin: 0 auto;
}

.item {
    padding: 20px;
    border: 1px solid #ccc;
    margin-bottom: 10px;
}

 

 


3. JavaScript 파일 생성하기
무한 스크롤을 구현하기 위한 JavaScript 파일을 생성합니다. 이 파일을 "script.js"로 저장하세요.


// script.js
document.addEventListener("DOMContentLoaded", function () {
    const container = document.getElementById("container");
    let page = 1; // 초기 페이지 번호
    const perPage = 11; // 한 번에 로드할 아이템 수

    // 아이템을 로드하고 컨테이너에 추가하는 함수
    function loadItems() {
        for (let i = 0; i < perPage; i++) {
            const item = document.createElement("div");
            item.className = "item";
            item.textContent = "아이템 " + ((page - 1) * perPage + i + 1);
            container.appendChild(item);
        }
        page++;
    }

    // 스크롤 이벤트를 감지하여 아이템 로드
    window.addEventListener("scroll", function () {
        const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
        const windowHeight = window.innerHeight;
        const scrollHeight = document.documentElement.scrollHeight;

        if (scrollTop + windowHeight >= scrollHeight - 200) {
            loadItems();
        }
    });

    // 초기 아이템 로드
    loadItems();
});

 


4. 무한 스크롤 실행하기

위의 코드를 모두 작성한 후, HTML 파일을 브라우저에서 열어서 테스트하세요. 초기에는 몇 개의 아이템이 보이고, 스크롤을 아래로 내리면 새로운 아이템이 동적으로 추가되는 것을 확인할 수 있습니다.

 

5. 결과

화면을 11번 보다 작게 한다음 스크롤을 작동 시켜보세요 아래처럼 무한하게 나옵니다. 

 

 

반응형