
[英]AngularJS ng-infinite-scroll not working on a specific container/div
[英]angularjs infinite scroll in a container
我正在尝试使用angularjs无限滚动它似乎只有在滚动相对于浏览器窗口时才有效。
我想在内部DIV中进行无限滚动,即我有一个带有通用包装器的页面和一个用于显示实际内容的内部div。
包装页面设置为经过整个窗口,因此永远不会滚动。 但是包含内容的内部div有自己的滚动条。
如何让无限滚动相对于内容内容div滚动条工作?
如果有人搜索同一个并来到这里 - 这里是有用的链接:
https://github.com/BinaryMuse/ngInfiniteScroll/pull/7 (拉取请求和讨论)
https://github.com/hlsolutions/ngInfiniteScroll/tree/scroll-on-any-lement (带有必要功能的fork)
https://raw.github.com/hlsolutions/ngInfiniteScroll/scroll-on-any-lement/src/infinite-scroll.coffee (来源本身)
你可以这样使用它(例如haml):
.div-with-overflow
%ul{data: {'infinite-scroll' => "getItems()", 'infinite-scroll-disabled' => 'cannotGetItems()', 'infinite-scroll-parent' => 'true'}}
提供'infinite-scroll-parent' => 'true'
将使父元素用于计算而不是窗口。
以下是纯HTML中的示例:
<div class="content">
<div infinite-scroll="addPage()" infinite-scroll-container='".content"'>
<div ng-repeat="recipe in recipes">
两个问题在这里:
.content
然后用单引号括起来。 如果您读取源,则字符串值最终会被送入document.querySelector
。 您可以阅读相关文档,了解它所期望的价值。 如果无限滚动指令的直接父元素是可滚动容器,也可以使用@trushkevich建议的infinite-scroll-parent
助手。
这个线程有点旧,但仍然没有相关性。
看起来,ng-infinite-scroll在一些分叉解决方案中合并,现在支持以下(未记录的)属性:
infiniteScrollContainer允许您通过传入查询选择器或函数或html元素来设置容器
infiniteScrollParent只是告诉它使用父对象作为容器(而不是$ window)
样品用途:
<div class="scroller-companies" infinite-scroll="showMorePlaces()" infinite-scroll-parent="true">
我建议另一个无限滚动: ui-scroll它具有最基本的特征“破坏元素,因为它们变得不可见,并且如果它们再次可见则重新创建它们。” - 避免创建观察者并让你的应用程序缓慢
打开ng-infinite-scroll.js文件,将$ window的所有引用更改为$(“#my-content-container”)。
备注:一个强大的解决方案是将attr参数添加到带有容器id的无限滚动。
使用此代码没有插件
在控制器中执行以下操作
$(".Scrollx").scroll(function () {
if ($('.Scrollx').scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) {
$scope.limit = $scope.limit + 5;
}
});
设置limit
变量,以显示第一个示例: $scope.limit=5
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.