空灵-msu / yii2-infinite-scroll
此包已被废弃,不再维护。未建议替代包。
Yii2扩展,用于无限滚动jQuery插件
dev-master / 1.0.x-dev
2017-07-17 20:37 UTC
Requires
- bower-asset/jquery-infinite-scroll: 2.*
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2021-11-27 01:47:27 UTC
README
Yii2扩展,用于无限滚动jQuery插件,为如ListView
等小部件提供滚动功能。它渲染一个超链接,指向目标页面的下一页,并注册无限滚动jQuery插件,该插件使用javascript获取并附加后续页面的内容,当javascript被禁用时,会优雅地降级为完整页面刷新。
提供了一些默认的滚动行为,允许自定义滚动行为,包括Twitter风格的手动触发、在overflow div中的本地滚动、Masonry集成等。
目前此扩展仅支持无限滚动插件的v2.x版本。
资源
安装
Composer
将扩展添加到您的composer.json
中,并像通常一样更新您的依赖项,例如通过运行composer update
{ "require": { "nirvana-msu/yii2-infinite-scroll": "1.0.*@dev" } }
小部件配置
除了大多数LinkPager
提供的属性外,此小部件还允许您配置
- $widgetId 字符串 小部件所有者ID,必需
- $itemsCssClass 字符串 封装项目的标签的CSS类。必需
- $pluginOptions 数组 无限滚动jQuery插件选项。有关更多信息,请参阅无限滚动文档
- $contentLoadedCallback 字符串|JsExpression 通过ajax调用加载内容时要执行的javascript回调
示例用法
插件通过将获取的项目附加到父容器末尾来工作,因此需要配置父ListView
小部件的layout
属性,将{items}
包装在例如具有某些类(用作选择器)的div
容器中。可以配置所有小部件初始化插件时使用的选择器以满足项目需求,但通常只需设置itemCssClass
(我们创建的包装标签的类)和widgetId
(这将确保同一页面上不会发生多个插件的冲突)。
所以,最小需要的配置看起来是这样的
echo ListView::widget([ ... 'id' => 'my-listview-id', 'layout' => "{summary}\n<div class=\"items\">{items}</div>\n{pager}", 'pager' => [ 'class' => InfiniteScrollPager::className(), 'widgetId' => 'my-listview-id', 'itemsCssClass' => 'items', ], ]);
一个示例,说明如何自定义某些小部件/插件选项
echo ListView::widget([ ... 'id' => 'my-listview-id', 'layout' => "{summary}\n<div class=\"items\">{items}</div>\n{pager}", 'pager' => [ 'class' => InfiniteScrollPager::className(), 'widgetId' => 'my-listview-id', 'itemsCssClass' => 'items', 'contentLoadedCallback' => 'afterAjaxListViewUpdate', 'nextPageLabel' => 'Load more items', 'linkOptions' => [ 'class' => 'btn btn-lg btn-block', ], 'pluginOptions' => [ 'loading' => [ 'msgText' => "<em>Loading next set of items...</em>", 'finishedMsg' => "<em>No more items to load</em>", ], 'behavior' => InfiniteScrollPager::BEHAVIOR_TWITTER, ], ], ]);
许可
扩展在MIT许可下发布,与底层jQuery插件相同。