VGLoadMore

Под загрузка контента

API и события

Ручной вызов toggle(), отменяемое событие before.load и результат loaded.

Метод и журнал событий

Основная кнопка работает через Data API, внешняя — вызывает toggle() у того же экземпляра. Журнал показывает before.load и loaded без повторной инициализации.

01
Первая записьЭлемент публичного сценария
02
Вторая записьЭлемент публичного сценария
03
Третья записьЭлемент публичного сценария
04
Четвёртая записьЭлемент публичного сценария
Экземпляр готов к загрузке.
HTML
<div id="api-feed" class="module-loadmore-list">
  <article class="module-loadmore-item show">Первая запись</article>
  <article class="module-loadmore-item vg-collapse">Вторая запись</article>
</div>
<button
  id="api-loadmore-trigger"
  data-vg-toggle="loadmore"
  data-target="#api-feed"
  data-elements="module-loadmore-item"
  data-limit="1"
  data-offset="1"
>Следующая запись</button>
JavaScript
import {VGLoadMore} from 'vgapp';

const trigger = document.querySelector('#api-loadmore-trigger');
const instance = VGLoadMore.getOrCreateInstance(trigger);

trigger.addEventListener('vg.loadmore.before.load', (event) => {
  console.log('Перед загрузкой', event.cancelable);
  // event.preventDefault() отменит текущую порцию.
});

trigger.addEventListener('vg.loadmore.loaded', ({detail}) => {
  console.log('Загружено', detail.data);
});

instance.toggle();
instance.dispose();
CSS
/* Дополнительные стили не требуются. */

Параметры

limit / offsetРазмер порции и позиция следующего элемента.
elementsКласс элементов без точки.
mode / thresholdbutton или scroll и запас IntersectionObserver в пикселях.
autohide / detachСкрыть завершившийся триггер или полностью удалить его из DOM.
animate / appendАнимировать появление; добавлять AJAX-ответ после или перед текущим контентом.
ajax.route / target / methodEndpoint, контейнер ответа и HTTP-метод.

Методы

VGLoadMore.getOrCreateInstance(element, params)Возвращает существующий экземпляр или создаёт новый.
toggle(callback)Запускает следующую статическую или AJAX-порцию и вызывает callback после успеха.
dispose()Отключает IntersectionObserver и удаляет регистрацию экземпляра.

События

vg.loadmore.before.loadПриходит перед каждой порцией; preventDefault() отменяет загрузку.
vg.loadmore.loadedПриходит после успешной статической или AJAX-порции и содержит detail.data.