javascript - 用于附加侧边栏的 Angular 指令

标签 javascript jquery html css angularjs

我正在尝试根据我的主要内容添加侧边栏。我在这里尝试过指令。虽然我成功地使用了顶部词缀,即向下滚动时它可以工作并坚持到顶部,但它无法滚动以防我的侧边栏内容更长。我想将其固定在顶部并根据主要内容将其移动为可滚动。但如果它的内容比屏幕多,它也应该向下滚动并同时固定在底部。

<div class="background-white" sidebar-affix data-spy="affix" data-offset-top="80" data-offset-bottom="10">My sidebar content here</div>

.directive('sidebarAffix', function($window) {
    return {
        restrict: 'EA',
        link: function(scope, element, attrs) {
            var originOffsetTop = element[0].offsetTop;
            scope.condition     = function() {
                return $window.pageYOffset > originOffsetTop;
            };

            angular.element($window).bind('scroll', function() {
                scope.$apply(function() {
                    console.log($window.pageYOffset > originOffsetTop);
                    if (scope.condition()) {
                        angular.element(element).removeClass('affix-top');
                        angular.element(element).addClass('affix');
                    } else {
                        angular.element(element).addClass('affix-top');
                        angular.element(element).removeClass('affix');
                    }
                });
            });
        }
    };
})

我想滚动以防边栏比预期的长,但在这种情况下它应该固定在底部。

最佳答案

给你的菜单 position:fixed;和 top:XXpx 那么即使您向下滚动内容,它也将始终停留在同一个位置

.wrapper > div{
  display:inline-block;
}
.side-bar  {
  position:fixed;  
  top:10px;
}
.content {
  
}
<div class='wrapper'>
  <div class='side-bar'></div>
  <div class='content'></div>
</div> 

关于javascript - 用于附加侧边栏的 Angular 指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37008780/

相关文章:

javascript for循环重复上次迭代

javascript - CK编辑器第二次验证

javascript - 检测 javascript 或 jQuery 中 iframe 的负载(不是同一域,动态添加)?

jquery - jquery 中的增量 z-index

jquery - 使用 jquery 检查 div 内部是否有 img 元素

html - HTML GIF 上方的未知行

javascript - 在页面上创建多个 google.visualization 图表

javascript - 正则表达式 - 获取特定字符串后的数字

html - 奇怪的 Bootstrap 网格失败?

javascript - 下划线对象数组的数组操作