Bootstrap 5 무한 스크롤

부트스트랩 무한 스크롤이란 무엇입니까?



이 기능은 스크롤 이벤트 리스너(창 또는 스크롤로 설정된 overflow-y 속성이 있는 경우 연결된 구성 요소에 추가)를 추가하고 사용자가 페이지/컨테이너 끝에 도달할 때마다 콜백 메서드를 호출합니다.


설치



수동 설치(zip 패키지)



부트스트랩 이미지 구성 요소를 활용하고 프로젝트에서 사용하려면 먼저 MDB 5 Free package을 설치해야 합니다.


MDB CLI



MDB 5 및 MDB CLI의 모든 잠재력을 발견하고 사용하려면 당사Quick Start Tutorial를 시청하십시오.


고궁




전제 조건

프로젝트를 시작하기 전에 Node LTS (12.x.x recommended)을 설치해야 합니다.


설치

프로젝트에 MDB UI KIT를 설치하려면 터미널에 다음 명령을 쉽게 입력하십시오.

npm i mdb-ui-kit 




JS 모듈 가져오기

전체 라이브러리 또는 개별 모듈만 가져올 수 있습니다.

import * as mdb from 'mdb-ui-kit'; // lib
import { Input } from 'mdb-ui-kit'; // module 




CSS 파일 가져오기

MDB 스타일시트를 가져오려면 다음 구문을 사용하십시오.

@import '~mdb-ui-kit/css/mdb.min.css'; 




SCSS 모듈 가져오기

개별 SCSS 모듈을 가져올 수도 있습니다. 제대로 하려면 node_modules/mdb-ui-kit/src/scss 위치에서 프로젝트로 직접 복사하고 CSS 파일과 같은 방식으로 가져오는 것이 좋습니다.


웹팩 통합

Starter 을 사용하여 Webpack을 기반으로 새 프로젝트를 만드는 프로세스의 속도를 크게 높일 수 있습니다.


CDN



CDN을 통한 설치는 MDB UI KIT를 프로젝트와 통합하는 가장 쉬운 방법 중 하나입니다. 최신 컴파일된 JS 스크립트 태그와 CSS 링크 태그를 cdnjs에서 애플리케이션으로 복사하기만 하면 됩니다.

필요한 경우 Font Awesome 및 Roboto 글꼴도 추가하는 것을 잊지 마십시오. 다음은 예제 코드입니다.


CSS



<!-- Font Awesome -->
<link
  href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css"
  rel="stylesheet"
/>
<!-- Google Fonts -->
<link
  href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
  rel="stylesheet"
/>
<!-- MDB -->
<link
  href="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.3.0/mdb.min.css"
  rel="stylesheet"
/>




JS



<!-- MDB -->
<script
  type="text/javascript"
  src="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.3.0/mdb.min.js"
></script>



커스터마이징




기본 예


HTML



<div class="infinite-scroll" data-mdb-infinite-direction="y" data-mdb-infinite-container="infinite-scroll-basic">
  <ul
    class="container list-group infinite-scroll infinite-scroll-basic"
    id="basic-example"
    style="max-height: 261px; overflow-y: scroll"
  >
    <li class="list-group-item d-flex align-items-center">
      <i class="far fa-angry fa-3x me-4"></i> Angry
    </li>
    <li class="list-group-item d-flex align-items-center">
      <i class="far fa-dizzy fa-3x me-4"></i> Dizzy
    </li>
    <li class="list-group-item d-flex align-items-center">
      <i class="far fa-flushed fa-3x me-4"></i> Flushed
    </li>
    <li class="list-group-item d-flex align-items-center">
      <i class="far fa-frown fa-3x me-4"></i> Frown
    </li>
    <li class="list-group-item d-flex align-items-center">
      <i class="far fa-grimace fa-3x me-4"></i> Grimace
    </li>
    <li class="list-group-item d-flex align-items-center">
      <i class="far fa-grin fa-3x me-4"></i> Grin
    </li>
  </ul>
</div>




JS



// An array of icon names
const icons = [
  'Sad-Tear',
  'Meh-Blank',
  'Smile-Wink',
  'Tired',
  'Surprise',
  'Kiss-Beam',
  'Laugh-Squint',
];

// Get a scrollable container using an id attribute
const basicElement = document.getElementById('basic-example');

// An index of elements added after scrolling to the end of the container
let itemIndex = 0;

// items - an array of the created elements using the loop through icons array
const items = icons.map((icon) => {
  // Create a list item element
  const element = document.createElement('li');

  // Change HTML code inside created list element using icon we are currently working on
  element.innerHTML = `
  <li class="list-group-item d-flex align-items-center">
    <i class="far fa-${icon.toLowerCase()} fa-3x me-4"></i>${icon}
  </li>
  `;

  // Return ready element
  return element;
});

// Add an event listener to the scrollable container. The event below is triggered when a user scrolls to the end of the container
basicElement.addEventListener('complete.mdb.infiniteScroll', () => {
  // Return nothing when user appended all of the generated items
  if (itemIndex === icons.length - 1) return;

  // Append next element to the scrollable container
  basicElement.appendChild(items[itemIndex]);

  // Increment amount of items that are appended
  itemIndex++;
});





방향
data-mdb-infinite-direction를 사용하여 스크롤 방향을 정의합니다.


HTML



<div class="infinite-scroll py-3 text-center" id="direction-example"
  style="max-width: 1500px; overflow-x: scroll; white-space: nowrap;" data-mdb-infinite-direction="x">
  <span class="mx-5"><i class="far fa-angry fa-3x me-4"></i> Angry</span>
  <span class="mx-5"><i class="far fa-dizzy fa-3x me-4"></i> Dizzy</span>
  <span class="mx-5"><i class="far fa-flushed fa-3x me-4"></i> Flushed</span>
  <span class="mx-5"><i class="far fa-grimace fa-3x me-4"></i> Grimace</span>
  <span class="mx-5"><i class="far fa-grin fa-3x me-4"></i> Grin</span>
</div>




JS



// Get a scrollable container using an id attribute
const directionElement = document.getElementById('direction-example');

// An index of elements added after scrolling to the end of the container
let itemIndex = 0;

// An array of icon names
const icons = [
  'Sad-Tear',
  'Meh-Blank',
  'Smile-Wink',
  'Tired',
  'Surprise',
  'Kiss-Beam',
  'Laugh-Squint',
];

// items - an array of the created elements using the loop through icons array
const items = icons.map((icon) => {
  // Create a span element
  const element = document.createElement('span');

  // Add class mx-5 to the created element, which defines left and right margin
  element.classList.add('mx-5');

  // Change HTML code inside created span element using icon we are currently working on
  element.innerHTML = `
    <i class="far fa-${icon.toLowerCase()} fa-3x me-4"></i>
    ${icon}
  `;

  // Return ready element
  return element;
});

// Add an event listener to the scrollable container. The event below is triggered when a user scrolls to the end of the container
directionElement.addEventListener('complete.mdb.infiniteScroll', () => {
  // Return nothing when user appended all of the generated items
  if (itemIndex === items.length - 1) return;

  // Append next element to the scrollable container
  directionElement.appendChild(items[itemIndex]);

  // Increment amount of items that are appended
  itemIndex++;
});


📄 무한 스크롤 설명서 페이지에서 더 많은 사용자 지정 예제를 볼 수 있습니다.




중요한 자원



다음은 이 구성 요소로 작업하는 데 도움이 되도록 준비한 리소스입니다.
  • 읽기📄 Infinite scroll documentation page <-- 여기에서 시작
  • 프로젝트를 최대한 활용하려면 무한 스크롤과 관련된 다른 방법 옵션도 숙지해야 합니다. 목록을 찾으려면 아래 섹션을 참조하십시오.
  • 📥 Starter Bootstrap 5 templates에서 방법을 사용할 수 있습니다.
  • 템플릿은 📦 Free UI Kit for Bootstrap 5의 일부입니다.
  • 프로젝트를 완료한 후 CLI로 게시하여 💽 Free hosting (beta)을 받을 수 있습니다.



  • 관련 방법 옵션 및 기능


  • Clipboard
  • Lazy loading
  • Loading management
  • Ripple
  • Scrollbar
  • Smooth scroll
  • Sticky
  • Touch



  • 1.5시간 안에 부트스트랩 5 배우기






    추가 리소스



    학습 로드맵을 통해 웹 개발에 대해 알아보세요.
    🎓 Start Learning

    메일링 리스트에 가입하고 개발자를 위한 독점 리소스를 받으세요.
    🎁 Get gifts

    영감과 커뮤니티 경험을 위해 비공개 FB 그룹에 가입하세요.
    👨‍👩‍👧‍👦 Ask to join

    GitHub의 STAR를 사용하여 오픈 소스 패키지 생성 지원

    좋은 웹페이지 즐겨찾기