Dem Käufer werden "endlos" alle zutreffenden Produkte auf einer Seite angezeigt. Das (Nach-)Laden der Produkte erfolgt, sobald der Käufer den unteren Bereich der jeweils angezeigten Produktliste erreicht.
Wegweiser: Blättern in Produktlisten
Folgender Quellcode wird benötigt:
{CAT-Data}
<div class="wsAjaxLoad">
{@PR-DATA}
<!-- Produktbox einfügen -->
{/@PR-DATA}
{WS-ListPagingNext}
<div class="wsCategoryPagingNextAjaxDelete">
<a href="~WS-ListPagingNextLink~" class="wsCategoryPagingNext" data-ws-ajax-target=".wsAjaxTargetNext-~CAT-CurrPage~">Weitere Produkte laden</a>
</div>
<div class="wsAjaxTargetNext-~CAT-CurrPage~"></div>
{/WS-ListPagingNext}
</div>
{/CAT-Data}
<script>
function isInViewport(el) {
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
}
document.addEventListener('scroll', function () {
var wsCategoryPagingNext = document.querySelector('.wsCategoryPagingNext');
if (wsCategoryPagingNext) {
var viewportState = isInViewport(wsCategoryPagingNext) ? 'visible' : 'not visible';
if (viewportState == 'visible') {
var wsAjaxTarget = wsCategoryPagingNext.getAttribute("data-ws-ajax-target");
var wsAjaxTargetLink = wsCategoryPagingNext.getAttribute("href");
var wsAjaxTargetElement = document.querySelector(wsAjaxTarget);
$(wsAjaxTargetElement).load(wsAjaxTargetLink + " .wsAjaxLoad");
document.querySelector(".wsCategoryPagingNextAjaxDelete").remove();
}
}
}, {
passive: true
});
</script>