2016-05-30 118 views
0

试图一起使用Angular-SnapngSticky但它不起作用,面板应该保持粘滞正在滚动。Angular-snap不能与ngSticky一起使用

我已经准备了两个例子:

您可以在两个示例手风琴面板中展开,并尝试滚动以查看差异。其实我已经尝试多种解决方案,以使该元素是,但没有一个有角对齐

工作。如果我在它开始工作,非工作示例angular-snap.css文件中删除,但显然我需要它。我无法进一步调试这个问题,所以任何帮助将不胜感激。

回答

0

其实我找到了一个解决方法:)我很微笑,因为这不是我第一次发布问题后不久第一次找到解决方案。

我创建了以下指令:

.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的原因,解决方案。因此,如果有人会给更美丽的解决方案,我会接受它。

相关问题