Skip to main content
 首页 » 编程设计

Angularjs:当滚动到达div中滚动条的底部时如何触发事件

2024年11月24日7wayfarer

我试图在滚动条到达末尾时触发一个事件。我找到了这个 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 .