trilobit-gmbh/contao-ajaxpagination-bundle

Contao 4 ajax 分页组件

安装: 3,722

依赖项: 0

建议者: 0

安全性: 0

星标: 5

关注者: 2

分支: 1

开放问题: 3

语言:JavaScript

类型:contao-bundle

1.3.0 2022-03-10 17:59 UTC

This package is auto-updated.

Last update: 2024-09-24 18:07:01 UTC


README

Das Ajaxpagination Bundle bietet ihnen die Möglichkeit die Paginierung ihrer Seite via Ajax-Request zu implementieren. Dafür müssen Sie die entsprechenden Templates mit einem Hilfscontainer versehen. Die Erweiterung kommt bereits mit einer Anzahl an Templates, die direkt verwendet werden können.

The Ajaxpagination Bundle offers you the possibility to implement the pagination of your page via Ajax-Request. To do this, you have to provide the appropriate templates with an auxiliary container. The extension already comes with a number of templates which can be used directly.

模板结构

<?php $this->extend('block_unsearchable'); ?>

<?php $this->block('content'); ?>

  <div data-pagination="page_x<?= $this->id ?>">
    <?= $this->data ?>
    <?= $this->pagination ?>
  </div>

<?php $this->endblock(); ?>

带有辅助容器的模板 / 模板与辅助容器

包含的模板

(覆盖相应的核心模板)

  • cal_default
  • cal_mini
  • ce_comments
  • ce_gallery
  • mod_eventlist
  • mod_newslist
  • mod_search

为 Ajaxpagination 添加自定义/新扩展

  • 分页链接必须位于具有 (部分) 类 pagination 的 NAV 容器中。
  • 要分页的内容以及分页本身必须位于一个辅助容器中。
  • <div data-pagination="...">
        ...
    </div>
    
  • 该辅助容器需要一个唯一的标识符。这里建议使用前缀的元素 ID,例如 page_xyz<?php echo $this->id; ?>(在组件中,使用从分页链接中提取的参数名模式)。

安装

配置

工作模式

在模板中,可以在周围容器中额外切换工作模式(从 "替换" 到 "附加")。

<div data-pagination="..." data-pagination-type="add">
    ...
</div>

没有 data-pagination-type="add" 属性,分页将像以前一样工作。

不透明度

在模板中,可以在周围容器中额外定义透明度(在重新加载时设置)。

<div data-pagination="..." data-pagination-opacity=".25">
    ...
</div>

没有 data-pagination-opacity=".25" 属性,分页将像以前一样工作。

自动滚动

此外,现在可以在周围容器中额外定义标准分页设置的自动滚动到分页容器开头。

通过 data-pagination-scroll="slow" 属性激活自动滚动并设置滚动速度。

通过 data-pagination-scroll-offset="-25" 属性可以定义偏移量。

<div data-pagination="..." data-pagination-scroll="slow" data-pagination-scroll-offset="-25">
    ...
</div>

没有相应的 data-pagination-scroll="slow"data-pagination-scroll-offset="-25" 属性,分页将像以前一样工作。

事件

在翻页时将触发以下事件

  • hide.pagination.container
  • show.pagination.container

例如,可以使用这些事件进行自定义自动滚动(与实现的自定义滚动不同)。

Bspl.

jQuery('[data-pagination]')
    .on('hide.pagination.container', function (event) {
        let $target = jQuery(event.relatedTarget[0]);

        $target.addClass('in-progress');
    })
    .on('show.pagination.container', function (event) {
        let $target = jQuery(event.relatedTarget[0]);
        let offsetStatic = 10;
        let offsetDynamic = jQuery('#header').outerHeight();

        jQuery('html, body')
            .animate({
                scrollTop: $target.offset().top - offsetStatic - offsetDynamic
            }, 'slow');

        $target.removeClass('in-progress');
    });

兼容性

  • Contao 版本 ~4.9
  • Contao 版本 ~4.13