hopefully fixes some bad scrolling behavior

This commit is contained in:
Athou
2013-06-04 16:51:22 +02:00
parent 395e0d4eb9
commit a7c7db3ac8

View File

@@ -81,8 +81,6 @@ module.directive('onScrollMiddle', function() {
var d = $(document); var d = $(document);
var down = function() { var down = function() {
if (w.data.scrollDirection != 'down')
return;
var docTop = w.scrollTop(); var docTop = w.scrollTop();
var elemTop = e.offset().top; var elemTop = e.offset().top;
var threshold = docTop === 0 ? elemTop - 1 : docTop var threshold = docTop === 0 ? elemTop - 1 : docTop
@@ -90,8 +88,6 @@ module.directive('onScrollMiddle', function() {
return (elemTop > threshold) ? 'below' : 'above'; return (elemTop > threshold) ? 'below' : 'above';
}; };
var up = function() { var up = function() {
if (w.data.scrollDirection != 'up')
return;
var docTop = w.scrollTop(); var docTop = w.scrollTop();
var elemTop = e.offset().top; var elemTop = e.offset().top;
var elemBottom = elemTop + e.height(); var elemBottom = elemTop + e.height();
@@ -100,9 +96,10 @@ module.directive('onScrollMiddle', function() {
return (elemBottom > threshold) ? 'below' : 'above'; return (elemBottom > threshold) ? 'below' : 'above';
}; };
w.data.scrollPosition = d.scrollTop();
w.data.scrollDirection = 'down';
if (!w.data.scrollInit) { if (!w.data.scrollInit) {
w.data.scrollPosition = d.scrollTop();
w.data.scrollDirection = 'down';
var onScroll = function(e) { var onScroll = function(e) {
var scroll = d.scrollTop(); var scroll = d.scrollTop();
w.data.scrollDirection = (scroll w.data.scrollDirection = (scroll
@@ -115,11 +112,11 @@ module.directive('onScrollMiddle', function() {
w.data.scrollInit = true; w.data.scrollInit = true;
} }
scope.$watch(down, function downCallback(value, oldValue) { scope.$watch(down, function downCallback(value, oldValue) {
if (value && value != oldValue && value == 'above') if (value != oldValue && value == 'above')
scope.$eval(attrs.onScrollMiddle); scope.$eval(attrs.onScrollMiddle);
}); });
scope.$watch(up, function upCallback(value, oldValue) { scope.$watch(up, function upCallback(value, oldValue) {
if (value && value != oldValue && value == 'below') if (value != oldValue && value == 'below')
scope.$eval(attrs.onScrollMiddle); scope.$eval(attrs.onScrollMiddle);
}); });
} }