javascript - 如何在 Angular Js 中制作粘性标题?

标签 javascript angularjs

我正在尝试仅使用 Angular 或 vanilla javascript 来实现 AngularJs 粘性 header 概念。 (没有 jQuery 依赖)。我尝试创建这个指令,但我遗漏了一些东西......请提供一些建议?

Working updated code

JavaScript

angular.module('app', [])
.directive('stickyHeader', function ($window) {
return {
    restrict: 'AE',
    link: function (scope, element, attrs) {
      var header = angular.element(element);
      var clone = header[0].before(header.clone().addClass("clone"));

      angular.element($window).bind("scroll", function () {
        var fromTop = $window.pageYOffset;
        var body = angular.element(document).find('body');
        body.toggleClass('down', (fromTop > 400));
      });

      console.log('$window', $window);
      console.log('element', element);
      console.log('header', header);
  }
};
})
 .controller('Main', function ($scope) {
  $scope.angular = angular;
});

最佳答案

<div>above content</div>
<div style="position: sticky;top: 0px;z-index: 1;background-color: red">header</div>
<div style="height: 200px">content-1</div>
<div>content-2</div>

尝试添加以下代码。

style="position: sticky;top: 0px;z-index: 1;

关于javascript - 如何在 Angular Js 中制作粘性标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41608466/

相关文章:

javascript - 重定向后从 window.open()'ed 窗口获取内容

javascript - 如何在分配变量时使用 async/await?

javascript - 如何按 Angular 对该对象进行排序

javascript - AngularJS 全局 http 轮询服务

javascript - 在ajax加载的内容上加载jquery循环

javascript - 为什么 "window"对象有这么多嵌套的 "window"对象?

javascript - 将 google.visualization.datatable 与复选框和 KnockOut 数据绑定(bind)相结合

javascript - 从 $scope 外部访问集合

javascript - Angularjs - 跨 Controller 计算

javascript - asp.net mvc 6 web api + Angular 资源帖子数组作为对象属性