您可以將指令放在您的可滾動div上,聽取scroll
事件並檢查到達頂部或底部。
因此,使用你的HTML,你的DIV應該是這樣的:
<div exec-on-scroll-to-top="ctrl.handleScrollToTop"
exec-on-scroll-to-bottom="ctrl.handleScrollToBottom"
style="width:90%;height:150px;border:1px solid red;overflow:auto">
<div ng-repeat="n in name">{{n.name}}</div>
</div>
有了新的指示exec-on-scroll-to-top
和exec-on-scroll-to-bottom
增加。每個指定控制器中的一個函數,當指令檢查的特定事件發生時應執行該函數。
exec-on-scroll-to-top
是這樣的,只是檢查了滾動div的scrollTop
屬性爲0
:
myapp.directive('execOnScrollToTop', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var fn = scope.$eval(attrs.execOnScrollToTop);
element.on('scroll', function (e) {
if (!e.target.scrollTop) {
console.log("scrolled to top...");
scope.$apply(fn);
}
});
}
};
});
而且exec-on-scroll-to-bottom
是這樣的(記住,一個元素完全滾動時,其(scrollHeight - scrollTop) === clientHeight
):
myapp.directive('execOnScrollToBottom', function() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var fn = scope.$eval(attrs.execOnScrollToBottom),
clientHeight = element[0].clientHeight;
element.on('scroll', function (e) {
var el = e.target;
if ((el.scrollHeight - el.scrollTop) === clientHeight) { // fully scrolled
console.log("scrolled to bottom...");
scope.$apply(fn);
}
});
}
};
});
Here's a plunk。打開控制檯查看滾動到達頂部或底部時記錄的消息。
在滾動事件中使用離子滾動。 http://ionicframework.com/docs/api/directive/ionContent/ –
我將如何得到滾動頂部和底部的事件 – Shruti