AngularJS - 绑定到滚动(鼠标滚轮,拖动条和触摸滑动)

时间:2017-09-20 08:12:42

标签: javascript android jquery ios angularjs

我做了一个非常简陋的“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')这是因为“滚动”根本不适合我。

所以我有点不确定从哪里开始。

0 个答案:

没有答案