Отложенная загрузка Div

170
25 ноября 2018, 21:40

Подскажите, пожалуйста, как реализовать отложенную загрузку элементов при прокрутке страницы. К примеру есть

<div id="container">
   <div class="item">Item_1</div>
   <div class="item">Item_2</div>
   <div class="item">Item_3</div>
   <div class="item">Item_4</div>
   ...
   ...
   <div class="item">Item_101</div>
</div>

Как сделать, чтобы, например, при загрузке странице загружались 10 элементов, и далее по 10 по мере прокрутке.

Как реализовать пагинацию в моем случае я не знаю. Подскажите как можно автоматически подгружать по 10 контейнеров, возможно есть несложное решение. Спасибо!

Answer 1

Вот примерный код реализации: (Тут код для функции elementInViewport)

let template = [
  '<div class="item">Item_1</div>',
  '<div class="item">Item_2</div>',
  '<div class="item">Item_3</div>',
  '<div class="item">Item_4</div>',
  ...
  '<div class="item">Item_101</div>'
]
function appendItems() {
  for (var i = 0; i < 10; i++) {
    $('.container').append(template[i]);
  }
  template = template.splice(10, 101)
}
appendItems()
$(window).scroll(function() {
  const $last = $('.container .item').last()
  elementInViewport($last) ? appendItems() : true
})

Что тут происходит:

  1. Задается массив с элементами, которые нужно добавить
  2. Выводятся первые 10
  3. Если последний элемент находится внутри видимой области экрана, выводится еще 10 и т.д.

Держи ссылку

READ ALSO
Как найти самое длинное слово в textarea на Js

Как найти самое длинное слово в textarea на Js

Есть button,h1 и textarea мне нужно найти самое длинное слово в textarea

161
Как на чисто JS распарсить массив с JSON

Как на чисто JS распарсить массив с JSON

На стороне сервера формирую массив вида:

185
Функции декораторы

Функции декораторы

Ниже приведён общий пример декоратораУ меня такой вопрос: 2й аргумент в декораторе "MyFunc" это и есть обёртка которую возвращает декоратор?

187