PGa*_*her 16 css twitter-bootstrap angularjs affix ng-view
我正在试图找出为什么affix
当我改变我的Angular视图时我的面板不会保持不变.
我已将affix属性直接添加到第一页的面板(详细信息),并将其保留在数据间谍中仅在第二页(航班)中.
在一个完整的网络版本中,如果我刷新航班页面,突然启动词缀,并在滚动时保持放置,但如果我只是使用Angular导航到页面则不会.
当我在视图之间导航时,看起来这个词缀没有被Bootstrap添加到类中.
HTML:
<div class="panel panel-primary mySidebar" id="sidebar"
data-spy="affix" data-offset-top="0" data-offset-bottom="200">
Run Code Online (Sandbox Code Playgroud)
CSS:
.mySidebar.affix {
position: fixed;
top: 250px;
}
.mySidebar.affix-bottom {
position: absolute;
top: auto;
bottom: 450px;
}
Run Code Online (Sandbox Code Playgroud)
这是一个Plunker ..
http://plnkr.co/edit/S0Bc50?p=preview
我在这里找到了一个类似的问题:
Twitter Bootstrap:在单页面应用程序中不会触发粘贴
但我无法弄清楚如何将这个应用于我的问题......
任何帮助都会很棒!
jsp*_*rks 13
Angular UI Utils(不是 Angular UI Bootstrap,如评论中所述)有一个Scrollfix指令,可用于代替Affix.我有同样的问题,在更改视图后,Affix无法正常工作.我尝试将Angular UI Scrollfix添加到我的应用程序中,到目前为止看起来它将满足我的需求.
这是一个有用的Stack Overflow帖子,我找到了更多解释和示例:Angular ui-utils scrollfix.
如果你不想使用UI Bootstrap或UI Utils来支持普通的旧Bootstrap 3附件,那么这个词缀指令包装在我的单页角度应用程序上对我有用.我正在使用AngularUI路由器.
第一次加载指令时应用词缀.然后用它清除它$stateChagneSuccess
:$element.removeData('bs.affix').removeClass('affix affix-top affix-bottom');
如下所示:重置/更改bootstrap词缀的偏移量,然后重新应用它.让我知道,如果我在这里做的任何事都非常难看,虽然我喜欢简单,我喜欢利用默认的Bootstrap JS lib.
myApp.directive('affix', ['$rootScope', '$timeout', function($rootScope, $timeout) {
return {
link: function($scope, $element, $attrs) {
function applyAffix() {
$timeout(function() {
$element.affix({ offset: { top: $attrs.affix } });
});
}
$rootScope.$on('$stateChangeSuccess', function() {
$element.removeData('bs.affix').removeClass('affix affix-top affix-bottom');
applyAffix();
});
applyAffix();
}
};
}]);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13728 次 |
最近记录: |