我做了一个非常简陋的“Infinite-Scroll”指令,所有其他解决方案都与md-grid-list不兼容,所以我继续做了我自己的替代解决方法。
app.directive('scrollTrigger', function($window) {
return {
link : function(scope, element, attrs) {
var e = angular.element(element[0]);
e.bind('mousewheel', function() {
var parent = e.offsetParent()[0];
if (parent.scrollTop + parent.offsetHeight > (70/100*parent.scrollHeight)) {
scope.$apply(attrs.scrollTrigger);
}
});
}
};
});
您只需将scroll-trigger
放在可滚动的html元素上即可。代码检查它是否已经滚动到至少70%,如果有,则会触发在滚动触发器上调用的whatevers,例如:scroll-trigger =“loadMore()”
这样可以正常使用但只有在使用鼠标滚轮时它才有效,但是如果没有鼠标滚轮的用户尝试使用我的网站会怎么样?他们无法继续装载更多物品。
不行的方法是:
工作方式:
是的,我知道为什么,我只能绑定e.bind('mousewheel')这是因为“滚动”根本不适合我。
所以我有点不确定从哪里开始。