其实我找到了一个解决方法:)我很微笑,因为这不是我第一次发布问题后不久第一次找到解决方案。
我创建了以下指令:
.directive("stickyElement", function ($window) {
return function(scope, element, attrs) {
angular.element($window).bind("scroll", function() {
console.log("scrolled");
});
$(".snap-content").bind("scroll", function(event){
var scrolledUp = $(".snap-content").scrollTop();
console.log("from top: " + scrolledUp);
var offset = 50 - scrolledUp > 0 ? 50 - scrolledUp : 0;
$(element[0]).offset({top: offset});
})
};
});
首先,它检测滚动.snap-content
元素和不window
这仍然未涡卷,如果我理解正确的话,这就是为什么它不工作的原因。 Angular-Snap导致window
被取消滚动。 然后我做一个简单的计算,找出这个元素应该从顶部接收哪个offset
,然后设置这个值。当然,在最终版本中,所有参数将以角度的方式传递。
这是工作例如:https://plnkr.co/edit/HnBM2P5H7D2LPYt7uXve?p=preview
附:尽管它的工作,我觉得这是一个有点解决方案由于我的指令绑定到非相关元素,.snap-content
的原因,解决方案。因此,如果有人会给更美丽的解决方案,我会接受它。