我试图在滚动条到达末尾时触发一个事件。我找到了这个 this example .这是我的代码。问题是它根本不调用 loadmore() 。
控制台语句的值是:
848
899
in scroll
881
899
in scroll
892
899
in scroll
897
899
in scroll
900
899
似乎它永远不会去那个 if 语句!奇怪的是,如果我在检查元素中调试它,那么它会触发事件。
.....
我的指令:
directive('scrolly', function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var raw = element[0];
console.log('loading directive');
element.bind('scroll', function () {
console.log('in scroll');
console.log(raw.scrollTop + raw.offsetHeight);
console.log(raw.scrollHeight);
if (raw.scrollTop + raw.offsetHeight == raw.scrollHeight) { //at the bottom
scope.$apply(attrs.scrolly);
}
})
}
}
请您参考如下方法:
请检查 if 语句中的左侧是否大于右侧,而不是检查是否相等,因为滚动条位于底部就是这种情况。
raw.scrollTop + raw.offsetHeight > raw.scrollHeight
这是工作 jsfiddle .