HTML/CSS Infinite scrolling 구현
parallax scrolling 처럼 대세가 되어버린 infinite scrolling을 구현해봤다.
1. 준비
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./index.css">
<title>infinite scroll</title>
</head>
<body>
<div class="container">
<ul class="infinite-list">infinite list</ul>
</div>
</body>
<script type="text/javascript" src="./index.js"></script>
</html>
/* index.css */
.infinite-list {
/* We need to limit the height and show a scrollbar */
width: 200px;
height: 300px;
overflow: auto;
/* Optional, only to check that it works with margin/padding */
margin: 30px;
padding: 20px;
border: 10px solid black;
}
/* Optional eye candy below: */
li {
padding: 10px;
list-style-type: none;
}
li:hover {
background: royalblue;
}
// index.js
const listElm = document.querySelector('.infinite-list');
let itemNum = 1;
const loadMoreList = () => {
for (let i = 0; i < 10; i++) {
const item = document.createElement('li');
item.innerText = 'Item ' + itemNum++;
listElm.appendChild(item);
}
}
listElm.addEventListener('scroll', () => {
if(listElm.scrollTop + listElm.clientHeight >= listElm.scrollHeight) {
loadMoreList();
}
});
// Initially load items
loadMoreList();
js 파일로 for 문을 돌려서 원하는 값을 createElement / innerText 로 넣으면 됐다.
만약 서버나 API가 있다면 그 값을 넣어주면 될 것이다.
2. 결과
스크롤이 바닥에 닿으면 계속해서 10개씩 아이템이 늘어난다.
Author And Source
이 문제에 관하여(HTML/CSS Infinite scrolling 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@miiunii/HTMLCSS-Infinite-scrolling-구현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)